Как получить значение дочернего узла и изменить значение - PullRequest
0 голосов
/ 12 сентября 2011

Как я могу использовать JavaScript (без JQuery) для обхода группы DIV, имеющей общий класс, затем проверить значение в теге <span>, основываясь на значении, изменить значение href на что-то другое. Вот пример разметки.

<div class="module-content">
<div class="js-tab-content S00">
    <h2 class="heading">
        <a href="http://someurl.com">
            <span>Adelaide</span>
        </a>
    </h2>
</div>
<div class="js-tab-content N00">
    <h2 class="heading">
        <a href="http://anotherurl.com">
            <span>Sydney</span>
        </a>
    </h2>
</div>
<div class="js-tab-content V00">
    <h2 class="heading">
        <a href="http://thisurl.com">
            <span>Melbourne</span>
        </a>
    </h2>
</div>
</div>

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Вот оно:

var divs = document.getElementsByClassName("js-tab-content");
for(var i=0;i<divs.length;i++){
    var div = divs[i];
    if(!div) break;
    var span = div.getElementsByTagName("span");
    var link = div.getElementsByTagName("a");
    if(span[0].innerHTML == "Adelaide") link[0].href = "http://google.com";
}
1 голос
/ 12 сентября 2011
var tabContentDivs = document.getElementsByClassName("js-tab-content");

for (var i = 0, tabContentDiv; tabContentDiv = tabContentDivs[i]; ++i) {
    var spanEl = tabContentDiv.querySelector(".heading span");
    var spanText = spanEl.innerText;

    var aEl = tabContentDiv.querySelector(".heading a");
    aEl.href += "#" + spanText; // for example
}
...