【问题标题】:How to get the specific text using jquery? [duplicate]如何使用 jquery 获取特定文本? [复制]
【发布时间】:2013-12-31 03:51:53
【问题描述】:

我正在尝试使用 jquery 获取特定文本,这是我的代码,

<div class='sometext'>
sometext
<span class="innerspan">span_text</span>

</div> 

从上面的 html 我需要像这样使用 jquery 获取 sometext

$('.sometext').text() 

但我收到了输出 sometextspan_text

如何仅获取 sometext

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    只要找到你能找到的第一个节点,在你的例子中是一个文本节点:

    $('.sometext').contents().get(0);
    

    这有点脆弱,所以另一种方法是首先获取所有子文本节点:

    $('.sometext').contents().filter(function() {
        return this.nodeType == 3;
    });
    

    然后取第一个:

    $('.sometext').contents().filter(function() {
        return this.nodeType == 3;
    })[0];
    

    【讨论】:

    • 这很酷,我不知道contents() :) +1。也只是作为旁注-> .contents()[0] 也可以。
    • @DimitarDimitrov 是的,数组解引用也有效 :)
    • 可以使用 :contains() jquery 选择器吗?
    • @chepe 不,这是一个条件选择器,即它匹配搜索字符串。
    【解决方案2】:

    我认为您应该在“.sometext”div 中组织每个文本节点,例如在 div 或 p 标记中,如下所示:

    <div class='sometext'><p>sometext</p><span class="innerspan">span_text</span></div>
    

    然后您将能够使用JQuery Children function 访问“.sometext” div 的子项。

    $(".sometext").children()[0]
    

    索引取决于元素在di中的位置,我建议你阅读函数的文档。希望这对你有帮助,我的朋友!

    【讨论】:

      【解决方案3】:

      请看下面的代码。

      $('.sometext')
              .contents()
              .filter(function(){
                   return this.nodeType == 1; 
              }).hide();
      

      【讨论】:

        猜你喜欢
        • 2011-01-09
        • 1970-01-01
        • 2014-04-17
        • 2023-03-10
        • 2013-04-08
        • 2011-08-30
        • 1970-01-01
        • 2019-11-15
        • 2011-08-04
        相关资源
        最近更新 更多