我正在使用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”元素。我以为我可以做到以下但是没有按预期工作:
$('#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
});
答案 0 :(得分:9)
id 应该是标识特定元素的唯一值。你不能有两个同一个div。您可以尝试使用类和$('.package-content')
代替。
答案 1 :(得分: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")
答案 2 :(得分:0)
id
属性旨在是唯一的。尝试将class
属性设置为package-content
,然后将您的选择器更改为.package-content
而不是#package-content
。