jQuery根据标签标签从span标签返回文本

时间:2014-07-01 15:39:01

标签: javascript jquery html

我在页面上呈现了以下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"));

关于我做错的任何想法?

3 个答案:

答案 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选择器快得多。

Example fiddle

答案 2 :(得分:0)

您可以使用.text()

获取span标记的文本值

这将获取所有span标签中带有class&#34; value&#34;:

的文本
$("span.value").text()

如果您希望特定的span标记为每个标记分配唯一的ID,或者使用索引引用它们:

$($("span.value")[0]).text()