2015-01-11 3 views
1

Я пытаюсь установить минимальную высоту моего элемента div, ссылаясь на его имя класса, но возвращается с ошибкой: TypeError: не может прочитать свойство 'css' of null.TypeError: невозможно прочитать свойство 'css' of null

HTML элемент:

<div class="container contentContainer" id="topContainer"> 
     <div class="row"> 
      <div class="col-md-6 col-md-offset-3" id="topRow"> 
       <p class="bold">Please scroll down for more information </p> 
      </div> 
     </div> 
    </div> 

Javascript:

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<!-- Include all compiled plugins (below), or include individual files as needed --> 
<script src="js/bootstrap.min.js"></script> 

<script> 
    $(function() { 
     var x = document.getElementsByClassName("contentContainer"); 
     alert(x); 
     if(x != null) 
     { 
      $(".contentContainer").css('min-height',$(window).height()); 
     } 
    }); 
</script> 

Любые предложения о том, почему я получаю эту ошибку? Пожалуйста, дайте мне знать.

Проблемы возникает, когда я включаю мой внешний файл JavaScript:

<!-- <script type="text/javascript" src="js/monthly.js"></script> --> 
+2

Добавлен ли скрипт с jQuery? –

+0

Да, да. Это неправильно? – Neophile

+0

jQuery явно не загружен, так как вам пришлось удалить '$ (function() {...}', чтобы заставить ваш код работать. – Teemu

ответ

8

Вы загружаете jQuery и Bootstrap в одно и то же время, и они оба clobber символ $; использовать только JQuery вы бы использовать каноническое имя:

jQuery(".contentContainer") 
    .css('min-height', jQuery(window).height()); 

Или используйте обертку:

jQuery(function($) { 
    $(".contentContainer").css('min-height',$(window).height()); 
}); 
+0

Я включил последнюю версию jQuery, используя .. Тем не менее это не Работа. – Neophile

+0

@ TheNewbie Затем он не загружен в нужном месте; убедитесь, что он загружен * над * тегом '

0

Это синтаксис JQuery.

$(window).height(); 

Вам нужно будет включить JQuery или использовать встроенную версию JavaScript:

window.innerHeight; 

Для того, чтобы использовать JQuery, вам нужно будет включить jQuery library

+1

Как это связано с проблемой OP? – Teemu

+0

На первый взгляд, похоже, что он использовал синтаксис jQuery, который давал ошибки. –

0

Вы получали ошибку на JSFiddle, потому что вы не включили jQuery.

Updated Fiddle

На левом навигационном-бар, есть раздел, который говорит, что "Каркасы & Расширения". Вам необходимо выбрать

jQuery (edge) 

Или любая версия jQuery из этого раскрывающегося списка.

JSFiddle side-bar

Потому что вы не включили JQuery, то $ конструктор не существует, поэтому ошибка

TypeError: cannot read property 'css' of null. 

был брошен, потому что вы пытаетесь получить доступ к свойству несуществующего (null).

+0

Но я включил jQuery. Neophile

+0

@ TheNewbie Не в вашем JSFiddle, вы этого не делаете. – theonlygusti

+1

Если '$' не существует, вы получите опорную ошибку, а не ошибку типа. –

0
var x = document.getElementsByClassName("contentContainer"); 

Возвращает массив элементов, имеющих этот класс. Получите доступ к требуемому элементу, как в обычном массиве.

x[0]  //The first element, if there is any. 
0

Если вы наберете $ [ENTER] на консоли браузера вы получите что-то вроде

function (a,b){return new e.fn.init(a,b,h) 

Если селектор $ ('contentContainer') возвращает нуль, а не объект, содержащий функцию CSS, возможно, $ не ссылается на jQuery или был изменен между вами, где вы включаете jquery.js и код, который вы пытаетесь запустить.

Смежные вопросы