jQuery: выбор нескольких элементов - PullRequest
1 голос
/ 18 марта 2009

Я использую jQuery 1.3.2:

<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>

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

$('#package-content')

Это возвращает только первый элемент в списке - это то, что я ожидал от getElementById ("package-content"), но я думал, что jQuery вернет массив всех элементов. Чего мне не хватает в моем понимании селектора jQuery для идентификаторов деления?

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

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
});

Ответы [ 3 ]

9 голосов
/ 18 марта 2009

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

2 голосов
/ 18 марта 2009

делает package-content классом, у вас все равно могут быть идентификаторы в этих div, но лучше всего делать id уникальным

<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")
0 голосов
/ 18 марта 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...