1

我正在使用 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>

我正在尝试使用 jQuery 选择器选择所有“包内容”元素。我以为我可以执行以下操作,但它没有按预期工作:

$('#package-content')

这只是返回列表中的第一个元素——这是我对 getElementById("package-content") 的期望,但我认为 jQuery 会返回一个包含所有元素的数组。我对 div id 的 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
});
4

3 回答 3

9

id应该是标识特定元素的唯一值。你不能有两个相同的 div。你可以尝试使用一个$('.package-content')而不是。

于 2009-03-18T17:41:26.393 回答
2

使 package-content 成为一个类,您仍然可以在这些 div 上使用 id,但最好的做法是使 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")
于 2009-03-18T17:43:45.530 回答
0

id属性旨在是唯一的。尝试将class属性设置为package-content并将选择器更改为.package-content而不是#package-content.

于 2009-03-18T17:42:03.710 回答