[英]how to get elements with no class name in javascript
我想從沒有類名的span元素中提取文本。 如何做呢? 可以搜索具有特定類名的元素,但是如何只獲取沒有類名的元素呢?
<span>0m2abBrL+RIHOEA+dZS+OqV3St+nJ/</span>
<wbr></wbr>
<span class="word_break"></span>
<span>zwq73Gfz8MQGB0yS++lfufSOV133huE</span>
<wbr></wbr>
<span class="word_break"></span>
vCB0s5D9w
<span class="text_exposed_hide">...</span>
遍歷它們並檢查我想的類名。
var spans = document.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].className == '') {
//span doesn't have a class
}
}
可以做更多的優化..但這就是您可以做到的..
function getElementsByNoClassName() {
var node = document.getElementsByTagName("body")[0];
var a = [];
var els = node.getElementsByTagName("*");
for (var i = 0, j = els.length; i < j; i++)
if (els[i].className=='') a.push(els[i]);
return a;
}
使用Element.querySelectorAll
,您可以使用以下代碼來實現。
document.getElementsByTagName('span').querySelectorAll('span:not([class])');
盡管我發現它很煩人,但我會給出一個jQuery答案(因為mrtsherman用真實的答案擊敗了我)
$('span:not([class])')
在我朋友的投票之后,我在此處的核心java腳本中添加了代碼:
<html>
<head>
<style>
span{display:block;}
</style>
<script type="text/javascript">
function getElementsByNoClassName() {
var node = document.getElementsByTagName("span");
console.log(node.length);
var a = [];
for (var i = 0, j = node.length; i < j; i++){
if (node[i].className=='')
node[i].setAttribute("style","color:red;");
}
}
window.onload=getElementsByNoClassName;
</script>
</head>
<body>
Content with No class is colored in red.
<span>0m2abBrL+RIHOEA+dZS+OqV3St+nJ/</span>
<wbr></wbr>
<span class="word_break"></span>
<span>zwq73Gfz8MQGB0yS++lfufSOV133huE</span>
<wbr></wbr>
<span class="word_break"></span>
vCB0s5D9w
<span class="text_exposed_hide">...</span>
</body>
</html>
這也可以用jQuery完成:
<html>
<head>
<style>
span{display:block;}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("span").filter(
function(){
return $(this).attr('class')==undefined
}).css('color','red');
});
</script>
</head>
<body>
Content with No class is colored in red.
<span>0m2abBrL+RIHOEA+dZS+OqV3St+nJ/</span>
<wbr></wbr>
<span class="word_break"></span>
<span>zwq73Gfz8MQGB0yS++lfufSOV133huE</span>
<wbr></wbr>
<span class="word_break"></span>
vCB0s5D9w
<span class="text_exposed_hide">...</span>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.