2009-03-18 6 views
1

Я использую JQuery 1.3.2:JQuery: Выбор нескольких элементов

<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 

у меня есть следующий HTML:

<div id="container-div"> 
     <div id="package_1"> 
      <div>Package_1</div> 
      <div id="package-content"></div> 
     </div> 
     <div id="package_2"> 
      <div>Package_2</div> 
      <div id="package-content"></div> 
     </div> 
    </div> 

Я пытаюсь выбрать все «пакет- контента "с помощью селектора jQuery. Я думал, что я мог бы сделать следующее, но он не работает, как ожидалось:

$('#package-content') 

Это возвращает только первый элемент в списке - что то, что я бы ожидать от getElementById («пакет-содержание»), но я думал, jQuery вернет массив всех элементов. Что мне не хватает в моем понимании селектора jQuery для div?

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

alert($('#container-div').find('#package-content').size()); // = 2 
alert($('#package-content').size()); // = 1 
alert($('#package-content').parent().attr('id')); // = package_1 

$("#package-content").each(function() { 
    alert('parent: ' + $(this).parent().attr('id') + ' child: ' + $(this).attr('id')); = parent: package_1 child: package-content 
}); 

ответ

9

ID должен быть уникальным значением для идентификации конкретного элемента. У вас не может быть двух div с одним и тем же. Вместо этого вы можете попробовать использовать класс и $('.package-content').

+0

я неправильно понял в документах jQuery на этом - http://docs.jquery.com/Selectors/id#id - четко указано, что он выбирает только один #id. –

0

id Признаки должны быть уникальными. Попробуйте установить атрибут class на package-content и смените селектор на .package-content вместо #package-content.

2

делают пакет-контента класс, вы все равно можете иметь идентификаторы на этих дивы, но это лучше всего практика, чтобы сделать идентификатор уникальной

<div id="container-div"> 
    <div id="package_1"> 
     <div>Package_1</div> 
     <div id="pc1" class="package-content"></div> 
    </div> 
    <div id="package_2"> 
     <div>Package_2</div> 
     <div id="pc2" class="package-content"></div> 
    </div> 
</div> 

затем использовать селектор класса:

$(".package-content") 
Смежные вопросы