दिलचस्प पोस्ट
आप दो आयामी सरणी कैसे घुमाएं? C # कंसोल अनुप्रयोग के त्वरित संपादन मोड को प्रोग्रामैटिक अक्षम कैसे करें? ऑनलाइन HTTP क्लाइंट जावा स्क्रिप्ट में दो चर कैसे स्वैप करें Angular2: DOM में एक कंटेनर के बच्चे के रूप में एक गतिशील घटक डालें SQL सर्वर स्कीमा और डिफ़ॉल्ट स्कीमा कैसे जावा में सिंक्रनाइज़ काम करता है प्रत्येक समूह में अंतिम रिकॉर्ड प्राप्त करना जब मैं एक वैल () का उपयोग करके एक मान का मूल्य सेट करता हूँ तो jQuery परिवर्तन ईवेंट क्यों ट्रिगर नहीं करता? आवधिक अप समय समाप्त सी # 3.0+ में संपत्ति और फ़ील्ड के बीच का अंतर PHP (MySQL) त्रुटि: "चेतावनी: mysql_num_rows () पैरामीटर 1 संसाधन होने की उम्मीद" बूटस्ट्रैप मोडल में jQuery के DatePicker को कार्यान्वित करना संप्रदाय: बचाएफ़िफ बिना फ़्रेम, कुल्हाड़ियों, केवल सामग्री फ्रेम की पहचान करने और फ़्रेम को सेलेनियम वेबड्रिवर में कैसे स्विच करना है जब फ्रेम में आईडी नहीं है

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

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

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

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

Solutions Collecting From Web of "क्या भाई नोड्स का चयन करने का कोई तरीका है?"

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

  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");