مسج: الذهاب من خلال جميع الصفوف المرئية من الطاولة

StackOverflow https://stackoverflow.com/questions/1689253

  •  18-09-2019
  •  | 
  •  

سؤال

أحتاج إلى كتابة بعض التعليمات البرمجية التي من شأنها حلقة على الرغم من أن جميع صفوف الجدول، ثم تحقق من إدخال مخفي في كل صف لمعرفة ما إذا كان يحتوي على قيمة معينة وإذا كان الأمر كذلك، فقم بتعيين بعض القيم وإخفاء الصف. قد يكون خرقاء، لكنه يعمل: (متغير "Zeile" يحتوي على الصف الأول، يتم تهيئةه بشكل صحيح قبل الحلقة):

while (goon) {
  var hf = zeile.attr('id');
  if (hf) {
      hf = document.getElementById(hf.substr(0,hf.length-2) + 'hfMat');
      if (hf.value == mid) {
          found=true;
          goon=false;
          zeile.hide();
     } else {
         cnt +=1 ;
         if (cnt<10) {
               alert('not found, cnt=' + cnt);
            } else {
               goon=false;
         }
       }
     }

     if (goon) {
        zeile = zeile.next('tr');
        goon=zeile.length>0;
     }
}    

حسنا، أولا وقبل كل شيء، خط 4 مع document.getElementById(hf...) يشبه الاعتراف بالهزيمة وربما هو - ولكن $("#"+hf).val() فقط لن تفعل ذلك، عاد undefined :(

كما قلت، هذا الرمز يعمل بشكل جيد. ولكن بعد ذلك، كان لدي حالة حيث تحتوي صفين على نفس القيمة في حقل HFMAT، وسيقوم البرنامج النصي بإخفاء الصف الأول مرة أخرى، في حين أنه كان يجب أن يستمر في الثانية. "سهل"، فكرت، وتحسين البيان لتحديد الصف التالي لمعالجة (الخط الرابع من النهاية)، لذلك تغيرت من zeile = zeile.next('tr'); ل zeile = zeile.next('tr:visible');ومع ذلك، مع JQuery 1.3.2، هذا لا يعمل وأصبح غير محدد. ما الخطأ الذي افعله؟

وبالتأكيد، يجب أن يكون هناك طريقة أفضل بكثير للحصول على هذا الاختيار الذي تم إنجازه دون حلقات فوضوية مثل هذه الآليات الأكثر تقدما، لكنني أخشى أن أبعد من ذلك لكنني سأكون سعيدا برؤية بعض الأفكار؛)

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

المحلول

عند إخفاء عنصر ببساطة، لا يتم إخراجه من تدفق المستند. لذلك، سيستمر في الحصول على موقع استفسارات DOM الخاصة بك.

دون رؤية HTML الفعلي الخاص بك، يمكنني فقط التكهن أن ما تحاول إنجازه يمكن القيام به بطريقة أبسط مع حلقة JQuery التالية:

$("tr input[value=" + mid + "]").each(function () {
    this.hide();
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top