<div class="Trade">
<div id="Offer">
<div class="NoResults">No Result!</div>
<div class="FooterPager"> <span id="Offer"><a disabled="disabled">First</a> <a disabled="disabled">Previous</a> <a disabled="disabled">Next</a> <a disabled="disabled">Last</a> </span>
</div>
</div>
</div>
这是我的javascript:
function Check(){
return !(iframe.contentDocument.getElementById("Offer").firstElementChild.tagName.toLowerCase() == "table");
}
是否可以返回true或false值来检查“NoResult”类是否存在?如果是这样,我该怎么办?你们晃动吧。我不能改变HTML编码,只能改变javascript。
答案 0 :(得分:19)
使用classList
。
var hasClass = element.classList.contains('some-class');
Further Reading(免责声明:链接到我自己的帖子)。
如果目标平台不支持,请尝试...
var hasClass = (" " + element.className + " ").indexOf(" some-class ") > -1;
答案 1 :(得分:1)
在没有使用像jQuery这样的库的Javascript中,您可以通过以下方式完成:
(' ' + MyElement.className + ' ').indexOf(' MyClassName ') != -1
如果“MyClassName”在className
属性中定义的字符串中出现在任何位置,则计算结果为true。
在您的具体情况下,例如:
function Check()
{
//Returns true when it exists
return (' ' + iframe.contentDocument.getElementById('Offer').firstElementChild.className + ' ').indexOf(' NoResults ') != -1;
}
我的回答中有一个错误,它会错误地识别评论中指出的部分匹配。基本上,您需要在检查中考虑类名是否完整。一个简洁的方法(如其他答案所示)是,如果你在整个className
属性和你要搜索的类之前和之后都有空格,那么它总能找到整个类。
虽然这会有效,但我建议Alex's answer为classList
isn't available in every browser(&lt; = IE9和其他一些人),这是解决此问题的最佳解决方案。
答案 2 :(得分:1)
if ( ~(' ' + element.className + ' ').indexOf(' NoResult ') ) {
// here you go. You've got that class...
}
答案 3 :(得分:0)
如何检查元素是否具有适用于所有浏览器的类: jQuery 1.6或更低版本
if($("#ElementId").attr('class').indexOf('ClassName') > -1)
JQuery 1.6或更高版本
if($("#ElementId").prop('class').indexOf('ClassName') > -1)
或者,如果您根本不使用IE
if($("#ElementId").prop('class').includes('ClassName'))