如何使用jQuery通过ID选择子元素?

时间:2010-08-20 20:41:06

标签: jquery

我在另一个容器中的span元素中选择文本时遇到问题。

我试图解决的情况是在页面上我们可能一次有10-15个不同的地址(所以我在创建页面时将记录ID添加到div的ID上)。我需要能够通过ID选择特定的一个,然后在其中找到各个地址片段。

HTML输出的示例如下:

<div id="Address_1">
    <span id="Address">Some Address</span>
    <span id="City">Some City</span>
    <span id="State">Some State</span>
    <span id="Zip">Some Zip</span>
</div>

<div id="Address_2">
    <span id="Address">Some Address</span>
    <span id="City">Some City</span>
    <span id="State">Some State</span>
    <span id="Zip">Some Zip</span>
</div>

我尝试过使用以下内容(以及许多变种):

$("#Address_" + Id).children().find("#Address").text;
$("#Address_" + Id).find("span#Address").text;
$("#Address_" + Id).find("span").find("#Address").text;

(我也可以在跨度内使用类而不是ID,但我也想知道如何通过ID来实现它。)

我确信这是非常简单的,我做错了,但我似乎可以弄明白。我在这里搜索了很多问题以及寻找类似的问题,但我似乎无法找到我正在寻找的东西。如果我没有使用正确的短语进行搜索,我会提前道歉。

非常感谢任何和所有帮助。

更新:感谢Ken Redler的帮助,这是我的解决方案。

<div id="Address_1">
    <span class="Address">Some Address</span>
    <span class="City">Some City</span>
    <span class="State">Some State</span>
    <span class="Zip">Some Zip</span>
</div>

$("#Address_" + Id).find("span.Address").text();

1 个答案:

答案 0 :(得分:10)

ID在整个文档中必须是唯一的。您应该改为使用“内部”ID类。然后你就有了:

$('#Address_'+Id).find('span.address').text();

根据LarsH的评论,在您的文档中,您拥有:

<div id="Address_1">
    <span id="Address">Some Address</span>

你将其改为:

<div id="Address_1">
    <span class="Address">Some Address</span>

如果某个ID不止一个,那么您的结果最多也是不可预测的。