2016-06-13 238 views
1

我试图找到所有span标签没有属性 - 没有阶级,没有造型,没有任何东西。我一直这样做:找到没有属性的DOM元素?

function hasAttributes(span) { 
    if (span.outerHTML.slice(0,6) === '<span>') return true; 
    return false; 
} 

有没有更好(更快)的方法来检查某个特定的元素是否合格?

回答

2

您可以使用querySelectorAll()来选择所有spans,然后使用for循环通过attributes属性过滤跨度。如果span没有任何属性,它将返回空数组。

var spans = document.querySelectorAll('span'); 
 
for (var i = 0; i < spans.length; i++) { 
 
    if (spans[i].attributes.length == 0) spans[i].style.color = 'blue'; 
 
}
<span>one</span> 
 
<span class="two">Two</span>

+1

假定使用jQuery虽然 – charlietfl

+0

这肯定工程OP,但时间则需加载的jQuery会规避任何益处时间从另一个解决方案 – Cliff

+0

@Cliff更新了纯js解决方案。 –

0

检查属性元素的属性长度

function hasAttributes(span){ 
    return span.attributes.length; 
}