2014-01-24 4 views
0

у меня есть следующий вопрос:найти элементы по имени класса

в моем теле я HAV это Див строительство:

<div id="page-wrapper"> 
    <div id="page"> 
     <div id="page-content" class="page-inner"> 
      <div id="page-content-inner"> 
       <div class="box tagcloud"> 
        <div class="modulcontent"> 
         <div class="tagspopular tagcloud tagscloud tagcloud"> 
          <span class="tag" > 
           <a class="tag-name" > test1</a> 
          </span> 
          <span class="tag"> 
           <a class="tag-name" >test2</a> 
          </span> 
          <span class="tag"> 
           <a class="tag-name" >test3</a> 
          </span> 
          <span class="tag"> 
           <a class="tag-name" > test4</a> 
          </span> 
          <span class="tag"> 
           <a class="tag-name" >test5</a> 
          </span> 
          <span class="tag"> 
           <a class="tag-name" >test6</a> 
          </span> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

Я знаю, хочу, чтобы выбрать пролеты с «тегом» -класса с JavaScript.

Я первый попробовал обычный JavaScript:

var elementArray; 

elementArray = document.getElementsByClassName("tag"); 

for(var i = 0; i < elementArray.length; i++) { 
    console.log(elementArray[i].className); 
} 

Но нет ничего в протоколе http://jsfiddle.net/42RJD/2/

Затем я попытался с JQuery:

<script src="jquery.js" type="text/javascript"></script> 
<script src="jquery-noconflict.js" type="text/javascript"></script> 
<script src="jquery-migrate.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    var pre = $('.tag'); 

    pre.each(function(i, el){ 
     console.log(el); 
     // OR 
     console.log(this); // will give you the element 

     // suppose to get text 
     console.log($(el).text()); // or $(this).text() 
    }); 
</script> 

Когда я попробовал это, я получил a Ошибка: TypeError: $ is not a function var pre = $('.tag');

http://jsfiddle.net/42RJD/3/

Я действительно не знаю, что делать. Я получаю оба кода отсюда, но он все еще не работает. :(

+1

Ну вы работаете его в режиме без конфликтов, так что вы должны использовать 'JQuery (» .tag ') ', даже если библиотеки загружаются. – epascarello

+0

Вам не нужен noconflict при нормальных обстоятельствах. Удалите' jquery-noconflict.js', если вам не нужен noconflict (или вы не знаете, что это значит) – RaviH

+0

Что не работает с вашим примером не jQuery? – epascarello

ответ

3

Вы должны использовать .ready(), чтобы выполнить код, когда DOM полностью загружена.

$(document).ready(function() { 

    var pre = $('.tag'); 

    pre.each(function(i, el){ 
     console.log(el); 
     // OR 
     console.log(this); // will give you the element 

     // suppose to get text 
     console.log($(el).text()); // or $(this).text() 
    }); 

}); 

http://api.jquery.com/ready/

+0

Большое спасибо. Команды $ также не работают. Я теперь изменил все $ в jQuery, и теперь я получаю то, что хочу. Большое спасибо, а также спасибо всем остальным за помощь! – Larkis

+0

Добро пожаловать. Если ответ был полезен, отметьте его как правильно. – jaapaurelio

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