سؤال

لدي اثنين من العناصر:

<input a>
<input b onclick="...">

B عندما يتم النقر أريد أن الوصول إلى والتلاعب بعض البيانات.وهو لا يكون الفريد من نوعه عالميا الاسم ، حتى وثيقة.getElementsByName في الخارج.يبحث في كائن الحدث ، ظننت الحدث.الهدف.parentNode أن يكون بعض من وظيفة مثل getElementsByName, ولكن هذا لا يبدو أن هذا هو الحال مع <td>s.هل هناك أي طريقة بسيطة للقيام بذلك ؟

هل كانت مفيدة؟

المحلول

إذا a و b هي بجانب بعضها البعض و لها نفس الأصل ، يمكنك استخدام prevSibling ملك b العثور على a.

نصائح أخرى

  1. يجب أن تكون قادرة على العثور على العنصر الذي تم النقر من كائن الحدث.اعتمادا على المتصفح الخاص بك قد ترغب 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.");
    }
    
  2. يمكنك بعد ذلك استخدام nextSibling و prevSibling دوم اجتياز المهام. المزيد من المعلومات هنا.و مرة أخرى w3schools مرجعا XML DOM.

النموذج أيضا لطيفة وظائف للتحرك في DOM.في المثال الخاص بك كما يلي سوف تفعل خدعة:

b.up().down('a')

وإذا كان هناك أكثر من عنصر في هذا المستوى لديك القدرة على محددات CSS في يدك تحدد بالضبط أي عنصر تريد

ترك الفانيليا عادي جافا سكريبت وراء.الحصول على مسج--سيوفر لك طن من الوقت.

http://docs.jquery.com/Selectors

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top