javascript - 知道 HTML 标签是否有文本节点

标签 javascript jquery jquery-selectors

给定 2 个选择

<div class="no-text example">
  100
</div>

<div class="with-text example">
 <span class="surprise"> 50 </span>
 100
</div>

在这两种情况下,我都想在 .example 中获取数字,使用相同的选择器或者以某种方式知道 .no-text 之间的区别。带文字

执行 $(".example").text() 会得到 50 100

目前我正在试验 .clone().children().remove().end().text() 但我需要以某种方式知道它是 .no-text .with-text

最佳答案

我不知道你想要怎样的数据,但是如果你想要一个包含所有文本节点文本的数组,那么你可以这样做。

创建一个空数组,然后遍历所有 .example 元素并检查每个“this”是否在其中有一个跨度。

如果您认为“惊喜”元素可以是任何东西,那么例如添加 || $(this).children("p").lengthif() 检查的右边

var textArray = []

$(".example").each(function(){
    if($(this).children("span").length) {
        textArray.push($(this).text())
    }
})

关于javascript - 知道 HTML 标签是否有文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32453257/

相关文章:

javascript - Jquery 选择 :contains text with html symbols

javascript - 使用 jQuery 获取父元素的前三个子元素

javascript - Google Cloud 函数快速入门

javascript - AngularJS - 如果元素具有特定类,则禁用 ng-click

javascript - AJAX POST 成功但没有执行任何操作

javascript - 选择带有数组的对象的 prop

jQuery 升序和降序排序(不是表格)

javascript - 自定义弹出窗口以获取我的当前位置

javascript - 如何从 handlebars.js 部分加载多个模板

jquery 选择器混淆 - $ ('div p' ) vs $ ('div>p' )