我在另一个容器中的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();
答案 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不止一个,那么您的结果最多也是不可预测的。