الحصول على أقرب عنصر معرف
-
09-06-2019 - |
سؤال
لدي اثنين من العناصر:
<input a>
<input b onclick="...">
B عندما يتم النقر أريد أن الوصول إلى والتلاعب بعض البيانات.وهو لا يكون الفريد من نوعه عالميا الاسم ، حتى وثيقة.getElementsByName في الخارج.يبحث في كائن الحدث ، ظننت الحدث.الهدف.parentNode أن يكون بعض من وظيفة مثل getElementsByName, ولكن هذا لا يبدو أن هذا هو الحال مع <td>s.هل هناك أي طريقة بسيطة للقيام بذلك ؟
المحلول
إذا a
و b
هي بجانب بعضها البعض و لها نفس الأصل ، يمكنك استخدام prevSibling
ملك b
العثور على a
.
نصائح أخرى
يجب أن تكون قادرة على العثور على العنصر الذي تم النقر من كائن الحدث.اعتمادا على المتصفح الخاص بك قد ترغب
e.target
أوe.srcElement
.رمز أدناه هو من هذا w3schools سبيل المثال:function whichElement(e) { var targ; if (!e) var e = window.event; if (e.target) { targ=e.target; } else if (e.srcElement) { targ = e.srcElement; } if (targ.nodeType==3) { // defeat Safari bug targ = targ.parentNode; } var tname; tname = targ.tagName; alert("You clicked on a " + tname + " element."); }
يمكنك بعد ذلك استخدام
nextSibling
وprevSibling
دوم اجتياز المهام. المزيد من المعلومات هنا.و مرة أخرى w3schools مرجعا XML DOM.
النموذج أيضا لطيفة وظائف للتحرك في DOM.في المثال الخاص بك كما يلي سوف تفعل خدعة:
b.up().down('a')
وإذا كان هناك أكثر من عنصر في هذا المستوى لديك القدرة على محددات CSS في يدك تحدد بالضبط أي عنصر تريد
ترك الفانيليا عادي جافا سكريبت وراء.الحصول على مسج--سيوفر لك طن من الوقت.