डोम की nextSibling
संपत्ति सभी ब्राउज़रों में पूरी तरह से काम करता है नोड है और वास्तव में आपकी आशा करता है। यदि कोई अगला भाई नहीं है, तो यह null
देता है।
एक NodeList
से अधिक पुनरावृत्ति (जो क्या getElementsByTagName
रिटर्न) एक सरणी एक मानक for
पाश का उपयोग करने पर पुनरावृत्ति के समान है। निम्नलिखित लिंक पर पुनरावृति और हर बार यह होता है जिसका अगले भाई है पाता सूचित करेंगे एक <div>
:
var menu = document.getElementById('menu');
var links = menu.getElementsByTagName('a');
// Iterate over the links
for (var i = 0, len = links.length, link; i < len; ++i) {
link = links[i];
if (link.nextSibling && link.nextSibling.nodeName == "DIV") {
alert("Next sibling is DIV! " + link.innerHTML);
}
}
ध्यान दें कि गैर IE में ब्राउज़रों, HTML में तत्वों के बीच खाली स्थान के लिए एक पाठ नोड माना जाता है। प्रत्येक लिंक की अगली भाई क्या है, इस पर विचार करते समय आप इन व्हाइटस्पेस नोड्स को अनदेखा कर सकते हैं।
function isWhitespace(node) {
return node.nodeType == 3 && /^\s*$/.test(node.data);
}
// Iterate over the links
for (var i = 0, len = links.length, link, next; i < len; ++i) {
link = links[i];
next = link.nextSibling;
if (next && isWhitespace(next)) {
next = next.nextSibling;
}
if (next && next.nodeName == "DIV") {
alert("Next sibling is DIV! " + link.innerHTML);
}
}
स्रोत
2010-10-29 12:08:11
बेहतर होगा कि तुम कुछ JavaScrip पुस्तकालय, उदाहरण के – infinity
के लिए jQuery मैं नहीं कर सकते हैं इस स्थिति में, आम तौर पर मैं होता उपयोग करेंगे: निम्नलिखित है कि क्या करेंगे। यह सिर्फ इस तरह के पुस्तकालयों पर मेरी निर्भरता दिखाता है ... – JasonS
क्या अगले भाई? –