检查选择器在jQuery中是否包含文本(即不是媒体)

Check if selector contains text (ie. is not media) in jQuery

本文关键字:媒体 文本 包含 选择器 jQuery 是否 检查      更新时间:2023-09-26

有没有办法使用 jQuery 来查看我的选择器是否是基于文本的字段。

即。当用户单击某个元素时,我们会检查它是否是包含文本而不是图像、视频等的元素。

在jQuery中实现这一点的最佳方法是什么?

您可以组合使用 .text 方法和 .html 方法。如果两者的结果重合,则节点仅包含纯文本。

text = $('element').text();
code = $('element').html();
if (text == code && text != ''){
    console.log('text node');
}

您必须测试元素,以便其子元素知道其中一个是否包含非文本元素。

if ($(this).find("img,video,object").length==0) {
   alert("i am a text only element");
} else {
   alert("i am not a text only element");
}

您可能必须测试元素本身是否可以触发单击事件。

例如,您可以使用 tagName 属性来找出它是哪种 dom 元素;

var someElement = $('[some selector]');
console.log(someElement[0].tagName);

这将为您提供元素名称(即<p>元素的"P")。

然后可以根据一系列文本元素进行检查以满足您的需求

类似var textElements = ["P", "H1", H2", "SPAN"]