我在页面上呈现了以下HTML:
<div class='panel'>
<div>
<div class='section'>
<ul class='properties'>
<li>
<label>Claim.Claimant</label>
<span class="value">Smith, John</span>
</li>
<li>
<label>Claim.LossDate</label>
<span class="value">04/22/2014</span>
</li>
<li>
<label>Claim.LossDescription</label>
<span class="value">I was injured.</span>
</li>
</ul>
</div>
</div>
</div>
我正在尝试使用jQuery检索填充在span标记中的文本。
我尝试过没有成功:
alert($("<label>Claim.Claimant</label>").find("span.value"));
关于我做错的任何想法?
答案 0 :(得分:4)
你应该这样做:
var $yourspan = $('label:contains(Claim.Claimant)').parent().find('span')
基本上它
请参阅 live demo
查看contains
编辑:
根据this jsperf test Rory's answer确实更具竞争力。
答案 1 :(得分:1)
首先,您的选择器语法不正确。您希望遵循基本的CSS规则,而不是选择器中的编码HTML。然后,您可以使用filter()
按文件查找元素。试试这个:
var valueText = $('label').filter(function() {
return $(this).text() == 'Claim.Claimant';
}).next('span.value').text();
alert(valueText); // = 'Smith, John'
请注意,filter()
比:contains
选择器快得多。
答案 2 :(得分:0)
您可以使用.text()
获取span标记的文本值这将获取所有span标签中带有class&#34; value&#34;:
的文本$("span.value").text()
如果您希望特定的span标记为每个标记分配唯一的ID,或者使用索引引用它们:
$($("span.value")[0]).text()