दिलचस्प पोस्ट
जावास्क्रिप्ट में 2 डी-सरणी को स्थानांतरित करना आरजीबी रंग रूपांतरण के लिए एचएसएल टेक्स्ट फ़ील्ड के शब्द गणना आंकड़ों को निर्धारित करने के लिए SQL का उपयोग करना मैं एमएसएसक्यूएल में कंपनी के नामों का फजी मैच कैसे कर सकता हूं, जो कि ऑटो-पूर्ण के लिए PHP है? AngularJS में कीप्रेस इवेंट का उपयोग कैसे करें? कहाँ और कैसे _ (अंडरस्कोर) चर निर्दिष्ट है? टोकन का उपयोग कर एक सी ++ स्टडी :: स्ट्रिंग को विभाजित करना, जैसे ";" क्या जावास्क्रिप्ट फ़ंक्शंस स्वीकार कर सकते हैं? पायथन 'अनुरोध' मॉड्यूल के साथ प्रॉक्सी क्वेरी के लिए पैरामीटर कैसे पास करें? कास्ट सूची <T> सूची <इंटरफ़ेस> Maven2: एंटरप्राइज़ प्रोजेक्ट (ईएआर फ़ाइल) के लिए सर्वश्रेष्ठ अभ्यास अजगर 3 में स्थान के बिना प्रिंट करें LD_PRELOAD चाल क्या है? Google टेक्स्ट-टू-स्पीच API

क्या भाई नोड्स का चयन करने का कोई तरीका है?

कुछ प्रदर्शन कारणों के लिए, मैं चयनित नोड के केवल भाई नोड्स का चयन करने का एक तरीका ढूंढने की कोशिश कर रहा हूं। उदाहरण के लिए,

<div id="outer"> <div id="inner1"> </div> <div id="inner2"> </div> <div id="inner3"> </div> <div id="inner4"> </div> </div> 

अगर मैं इनर 1 नोड का चयन करता हूं, तो मेरे लिए अपने भाई बहनों, आंतरिक 2-4 नोड्स तक पहुंचने का कोई रास्ता नहीं है?

वेब के समाधान से एकत्रित समाधान "क्या भाई नोड्स का चयन करने का कोई तरीका है?"

अच्छी तरह से … यकीन है … बस अभिभावक और फिर बच्चों का उपयोग करें

  node.parentNode.childNodes[] 

या … jQuery का उपयोग कर:

 $('#innerId').siblings() 

संपादित करें: कैटलस हमेशा प्रेरणादायक होता है मैं आगे खोदा। यह अनिवार्य रूप से jQuery के भाई-बहन हो जाता है:

 function getChildren(n, skipMe){ var r = []; for ( ; n; n = n.nextSibling ) if ( n.nodeType == 1 && n != skipMe) r.push( n ); return r; }; function getSiblings(n) { return getChildren(n.parentNode.firstChild, n); } 
 var sibling = node.nextSibling; 

यह उसके तुरंत बाद भाई को लौटा देगा, या नल नहीं भाई बहन उपलब्ध हैं। इसी तरह, आप previousSibling साइबलिंग का उपयोग कर सकते हैं

[संपादित करें] दूसरे विचार पर, यह अगले div टैग नहीं देगा, लेकिन नोड के बाद श्वेत स्थान। बेहतर लगता है

 var sibling = node.nextElementSibling; 

इसमें एक previousElementSibling एलेमेंट सिबलिंग भी मौजूद है

ऐसा करने के कुछ तरीके हैं

या तो निम्न में से एक को चाल करना चाहिए

 // METHOD A (ARRAY.FILTER, STRING.INDEXOF) var siblings = function(node, children) { siblingList = children.filter(function(val) { return [node].indexOf(val) != -1; }); return siblingList; } // METHOD B (FOR LOOP, IF STATEMENT, ARRAY.PUSH) var siblings = function(node, children) { var siblingList = []; for (var n = children.length - 1; n >= 0; n--) { if (children[n] != node) { siblingList.push(children[n]); } } return siblingList; } // METHOD C (STRING.INDEXOF, ARRAY.SPLICE) var siblings = function(node, children) { siblingList = children; index = siblingList.indexOf(node); if(index != -1) { siblingList.splice(index, 1); } return siblingList; } 

एफवाईआई: जेडएक्स कोड-बेस ग्रेड ए जावास्क्रिप्ट देखने के लिए एक महान संसाधन है।

यहां एक उत्कृष्ट उपकरण है जो एक बहुत सुव्यवस्थित तरीके से jQuery कोड-बेस का पता चलता है। http://james.padolsey.com/jquery/

क्या आपने jQuery में "सिबलिंग" विधि की जांच की है?

  sibling: function( n, elem ) { var r = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { r.push( n ); } } return r; } 

n.nodeType == 1 यदि तत्व एक html नोड है और n! ==, तो वर्तमान तत्व को बाहर निकाल दें।

मुझे लगता है कि आप उसी फ़ंक्शन का उपयोग कर सकते हैं, ये कोड वैनिला जावास्क्रिप्ट है।

शीघ्र:

 var siblings = n => [...n.parentElement.children].filter(c=>c!=n) 

https://codepen.io/anon/pen/LLoyrP?editors=1011

पेरेंट के बच्चों को एक सरणी के रूप में प्राप्त करें, इस तत्व को फ़िल्टर करें

2017 से:
सीधा जवाब: element.nextElementSibling सही तत्व भाई प्राप्त करने के लिए आपके पास element.previousElementSibling भी है element.previousElementSibling पिछला पिछले एक के लिए element.previousElementSibling

यहां तक ​​कि सभी अगले sibiling मिल आसान है

 var n = element, ret = []; while (n = n.nextElementSibling){ ret.push(n) } return ret; 

दस्तावेज़ का उपयोग करें। खोजकर्ता चयनकर्ता (सभी) और लूप्स और पुनरावृत्ति

 function sibblingOf(children,targetChild){ var children = document.querySelectorAll(children); for(var i=0; i< children.length; i++){ children[i].addEventListener("click", function(){ for(var y=0; y<children.length;y++){children[y].classList.remove("target")} this.classList.add("target") }, false) } } sibblingOf("#outer >div","#inner2"); 
 #outer >div:not(.target){color:red} 
 <div id="outer"> <div id="inner1">Div 1 </div> <div id="inner2">Div 2 </div> <div id="inner3">Div 3 </div> <div id="inner4">Div 4 </div> </div> 
 var childNodeArray = document.getElementById('somethingOtherThanid').childNodes; 

यहां बताया गया है कि आप पिछले, अगले और सभी भाइयों (दोनों पक्षों) को कैसे प्राप्त कर सकते हैं:

 function prevSiblings(target) { var siblings = [], n = target; while(n = n.previousElementSibling) siblings.push(n); return siblings; } function nextSiblings(target) { var siblings = [], n = target; while(n = n.nextElementSibling) siblings.push(n); return siblings; } function siblings(target) { var prev = prevSiblings(target) || [], next = nexSiblings(target) || []; return prev.concat(next); } 
 x1 = document.getElementById('outer')[0] .getElementsByTagName('ul')[1] .getElementsByTagName('li')[2]; x1.setAttribute("id", "buyOnlineLocationFix");