如何使用javascript/jquery获取具有特定文本的元素的类名?
我需要一种JavaScript或jQuery方法,通过它包含的文本来提取DIV元素的类名 让我们举例说明。如果我有下面的代码:如何使用javascript/jquery获取具有特定文本的元素的类名?,javascript,jquery,html,text,classname,Javascript,Jquery,Html,Text,Classname,我需要一种JavaScript或jQuery方法,通过它包含的文本来提取DIV元素的类名 让我们举例说明。如果我有下面的代码: <div class="_className">UniqueText</div> 在这种情况下,输出应为: _className 有办法做到这一点吗?您可以使用 var className=$(“div:contains('John')).attr(“class”); console.log(className) 作者 乔治马丁 马尔科姆
<div class="_className">UniqueText</div>
在这种情况下,输出应为:
_className
有办法做到这一点吗?您可以使用
var className=$(“div:contains('John')).attr(“class”);
console.log(className)
作者
乔治马丁
马尔科姆·约翰·辛克莱
J.Ohn
您可以使用
var className=$(“div:contains('John')).attr(“class”);
console.log(className)
作者
乔治马丁
马尔科姆·约翰·辛克莱
J.Ohn
JQuery选择器select元素有特定的文本,但并不精确。比如说
$("div:contains(UniqueText)")
选择两个底部div
<div class="_className">UniqueText</div>
<div class="_className2">UniqueText2</div>
var className=$(“*”).filter(函数(){
返回$(this).text()=“UniqueText”;
}).attr(“类别”);
log(类名)代码>
唯一文本
UniqueText2
JQuery选择器select元素具有特定的文本,但并不精确。比如说
$("div:contains(UniqueText)")
选择两个底部div
<div class="_className">UniqueText</div>
<div class="_className2">UniqueText2</div>
var className=$(“*”).filter(函数(){
返回$(this).text()=“UniqueText”;
}).attr(“类别”);
log(类名)代码>
唯一文本
UniqueText2
您可以为您的div保留一个id,根据您的信息,您的文本将是唯一的
<div id="UniqueText" class="_className">UniqueText</div>
更新:如果要使用contains
然后你可以这样做
function getClassNameWhereText(text){
var val = document.getElementById(text).value;
if(text.indexOf(val)>=0){
var className = $('#'+text).attr('class');
console.log(className);
}
}
您可以为您的div保留一个id,根据您的信息,您的文本将是唯一的
<div id="UniqueText" class="_className">UniqueText</div>
更新:如果要使用contains
然后你可以这样做
function getClassNameWhereText(text){
var val = document.getElementById(text).value;
if(text.indexOf(val)>=0){
var className = $('#'+text).attr('class');
console.log(className);
}
}
通过使用每个函数获取所有div
,您可以搜索所有div,并设置一个条件,使div
的值等于您要查找的特定文本。然后使用.attr('class')
获取类名
$(“div”)。每个(函数(){
如果($(this.text()=“UniqueText”){
var输出=$(this.attr('class');
$(“.output”).html(输出);
}
});代码>
唯一文本
通过使用每个函数获取所有div
,您可以搜索所有div,并设置一个条件,使div
的值等于您要查找的特定文本。然后使用.attr('class')
获取类名
$(“div”)。每个(函数(){
如果($(this.text()=“UniqueText”){
var输出=$(this.attr('class');
$(“.output”).html(输出);
}
});代码>
唯一文本
这应该比使用jQuery更快(但要比键入速度快一点):
var xpath=“//div[text()='UniqueText']”;
var result=document.evaluate(xpath,
文档,null,XPathResult.FIRST\u ORDERED\u NODE\u TYPE);
var node=result.singleNodeValue;
如果(节点){
log(node.className);
}否则{
控制台。错误(“未找到!”);
}
UniqueText
这应该比使用jQuery更快(但要比键入的速度快一点):
var xpath=“//div[text()='UniqueText']”;
var result=document.evaluate(xpath,
文档,null,XPathResult.FIRST\u ORDERED\u NODE\u TYPE);
var node=result.singleNodeValue;
如果(节点){
log(node.className);
}否则{
控制台。错误(“未找到!”);
}
UniqueText
我认为该线程可能满足您的需要我认为该线程可能满足您的需要,但如果该div被包装在任何其他div中,它也会返回包含文本的div的任何祖先。我需要知道类名。如何输出包含唯一文本的类的名称?更改后,它将返回类名称,直到失败,例如。解决方法可以是使用$(“div:contains('John'):not(:has(:contains('John'))))”
,但仍然:contains()
不是一个严格匹配的过滤器,如果您正在搜索一些文本,比如John Bob
,其中单词是分开的John
Bob
,它仍然很有用,但是也可以使用:last
,但是如果这个div被包装在任何其他div中,它也会返回包含文本的任何div的祖先。我需要知道这个类名称如何输出包含唯一文本的类的名称?更改后,它将返回类名称,直到失败,例如。解决方法可以是使用$(“div:contains('John'):not(:has(:contains('John'))))”
,但仍然:contains()
不是一个严格匹配的过滤器如果你搜索一些文本,比如John Bob
,其中单词是分开的John
Bob
,仍然可以使用:last
我喜欢这种方式,因为它是纯JavaScript,不依赖jQuery。我已经在这个平台上测试过了:。我看到的唯一问题是它没有输出所有事件。你会如何循环遍历所有结果?如果你喜欢纯js,那么为什么要用jQuery标记你的问题?@uncible,我要求使用JavaScript或jQuery,但如果有一个纯JavaScript单行程序可以做到这一点,我为什么要加载jQuery并扩大脚本的大小。请不要生气,但我认为这是实现结果的最优雅的方式。@jj您可以使用document.getElementsByTagName(“div”)迭代您的all div代码>这个。注意,这只适用于简单的div
,不适用于嵌套的div
。您在代码中使用了jquery,但通过javascript选择了元素!我喜欢这种方式,因为它是纯JavaScript,不依赖jQuery。我已经在这个平台上测试过了:。我看到的唯一问题是它没有输出所有事件。你会如何循环遍历所有结果?如果你喜欢纯js,那么为什么要用jQuery标记你的问题?@uncible,我要求使用JavaScript或jQuery,但如果有一个纯JavaScript单行程序可以做到这一点,我为什么要加载jQuery并扩大脚本的大小。请不要生气,但在我看来,这是实现t的最优雅的方式