سؤال

جديد لجافا سكريبت / مسج وتجد صعوبة في استخدام "هذا" أو "$ (هذا)" للحصول على الكائن الحالي.

ولدي جدول مع مجموعة من أزرار الراديو على كل صف، كل اسمه 'S_. يتم فحص أي من أزرار الراديو بشكل افتراضي:

<tr>
   <td align="left" style="width: 300px">
      <div id="div_s_0">
         <input type="radio" name="s_0" value="1" />Public
         <input type="radio" name="s_0" value="2" />Not Public
         <input type="radio" name="s_0" value="3" />Confidential
      </div>
   </td>
</tr>
<tr>
   <td align="left" style="width: 300px">
      <div id="div_s_1">
         <input type="radio" name="s_1" value="1" />Public
         <input type="radio" name="s_1" value="2" />Not Public
         <input type="radio" name="s_1" value="3" />Confidential
      </div>
   </td>
</tr>

وأنا أحاول كتابة دالة مسج لإضافة صف جديد إلى الجدول كلما يقوم المستخدم بتحديد زر الراديو، ولكن فقط إذا كانت هي حاليا في الصف الأخير من الجدول. ما أود القيام به هو الحصول على سمة اسم زر النقر عليها، تحليل ذلك للحصول على مؤشر الصف (أي الجزء بعد '_') وذلك لمقارنة عدد الصفوف في الجدول. إذا كانت تساوي، إضافة صف جديد، وإلا، لا تفعل شيئا.

وسؤالي هو من شقين، اعتمادا على كيف ينبغي مهاجمة هذا:

1) كيف يمكنني العودة السمة اسم زر الراديو، OR 2) كيف أعود مؤشر صف من الصف وأنا حاليا في؟

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

المحلول

وهذا سوف تحصل على مؤشر، وذلك باستخدام HTML كنت قد قدمت:

$(document).ready(function() {
    $("input:radio").click(function() {
        var index = parseInt(this.name.split('_')[1])
    });
});

وشيء آخر التي قد تساعدك: استرجاع عدد الصفوف في الجدول الخاص بك:

$($("table").children()[0]).children().length

وهذا الأمل يساعدك في طريقك.

نصائح أخرى

لأسئلة محددة الخاص بك 1 & 2، إذا أعطيته الجدول الخاص بك معرف من "mytable"، أن هذا المثال تعطيك ما كنت تبحث عن:

var rowIndex = $("#mytable tr").index($(this).parents("tr"));
var inputName = $(this).attr("name");
alert("Input Name: " + inputName + "; RowIndex: " + rowIndex);

وفيما يلي بعض التعليمات البرمجية غير مجربة، من على قمة رأسي:

$("#div_s_0 input[type='radio']").onclick = function() {
    if ($("#div_s_0 input[type='radio']:last").attr('checked') == 'checked') {
    /* add a new element */
    }
}

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

وكما قلت لم يتم اختباره بعد. أنا غير متأكد حول محدد (#div_s_0 ... :last) حتى إعطائها المدى في الحرائق أولا.

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