1

私はこのようなコードのブロックを持っています

<span class='Wrapper'>
    <span class="title"></span>
    <span class="body">
        <ul class="items">
        <li></li>
        <li></li>
        </ul>
    <span>
</span>

document.getElementsByTagName('span'); を使用してスパン ラッパー要素にアクセスしたら、title クラスを使用して内部スパン要素にアクセスし、クラス body を使用してスパン要素の ul 要素にアクセスするにはどうすればよいですか。プレーンな JavaScript を使用してこれを行う必要があります。

4

4 に答える 4

1

まず、すべてのスパン要素を保持する配列を取得します。

var yourSpans = document.getElementsByTagName('span');

次に、配列内の各要素をループして、要素に特定のクラスがあるかどうかを確認します。

for(var i in yourSpans){
    if (yourSpans[i].className == "title" || yourSpans[i].className == "body") {
        // your code here
    }
}
于 2012-07-10T21:47:47.707 に答える
0
var spans = document.getElementsByTagName('span');

スパンの配列を返します。spans[0]spans[1]などを使用してスパンにアクセスします。

于 2012-07-10T21:42:59.217 に答える
0

レーガンの答えに追加すると、次のようなことをする必要があります

 for( var i = 0, j= spans.length; i < j; i+=1 ) {
    var classes = span[i].getAttribute("class");
    if( classes ) {
       if( classes.indexOf("your_class_name") != -1) {
          //span[i] is one of thelements you need containing 'your_class_name'.
       }
    }
 }
于 2012-07-10T21:49:49.920 に答える
0

jQuery を使用することを強くお勧めします。jQuery を使用すると、作業がずっと簡単になります。

$('.title').dostuff...

しかし、JS のみのソリューションが必要な場合は、こちらをご覧ください...

function editClass(matchClass,content) {
    var elems = document.getElementsByTagName('*'),i;
    for (i in elems) {
        if((" "+elems[i].className+" ").indexOf(" "+matchClass+" ") > -1) {
            elems[i].innerHTML = content;
        }
    }
}

としてフィドル (Pure-JS、jQuery なし) を次に示します。

于 2012-07-10T21:50:52.217 に答える