2

クラス名のないスパン要素からテキストを抽出したい。どうすればそれができますか?特定のクラス名を持つ要素は検索できますが、クラス名のない要素だけを取得するにはどうすればよいですか?

<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>
4

5 に答える 5

4

それらを繰り返して、私が推測するクラス名を確認してください。

var spans = document.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
    if (spans[i].className == '') {
        //span doesn't have a class
    }
}
于 2012-01-18T05:53:17.413 に答える
1

より多くの最適化を行うことができます..しかし、これはあなたがこれを行う方法です..

 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;
        }
于 2012-01-18T05:58:18.743 に答える
0

私はそれがどれほど面倒だと思っていますが、jQueryの回答を提供します(mrtshermanが実際の回答で私を打ち負かしたため):

$('span:not([class])')
于 2012-01-18T05:55:53.550 に答える
-1

友人に反対票を投じた後、コア 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>
于 2012-01-18T05:55:55.997 に答える