通过javascript创建新的JavaScript代码

时间:2015-06-29 12:39:38

标签: javascript jquery html

我想通过单击om o按钮在html表中创建一个新行! 每行有几个input个!

<script type="text/javascript">
row = 2;
specific_row_id = new Array();
$(document).ready(function() {
    $(".change_1").change(function() {
        if ($('.change_1:checked').val() == 'yes') {
            $("#change_time_1").prop('required', true);
            $("#change_time_1").prop('readonly', false);
            $("#change_time_1").css('background', '#fff');
        } else {
            $("#change_time_1").prop('readonly', true);
            $("#change_time_1").css('background', 'rgba(255, 117, 117, 0.3)');
            $("#change_time_1").prop('required', false);
        }
    });

    //==============================

    $('#new_row').click(function() { //1
        $('#ghate_table').append('<tr><td>' + row + '</td><td><input name="ng_name_' + row + '" type="text" class="ng_name form-control full_w " ></td><td class ="ng_service_td"><div class="selected_container" id="selected_container_' + row + '" ><input name="service_time_' + row + '" id="service_time_' + row + '" type="number" class="service_time form-control " > <select name="service_time_type_' + row + '" class="form-control" ><option>ماه</option><option>روز</option><option> ساعت </option> </select> </div></td><td> <span class = "yes_change"><input name="change_' + row + '" class="change_' + row + '" id="change_yes_' + row + '" type="radio" value="yes"  checked> دارد </span>   <input name="change_time_' + row + '" id="change_time_' + row + '" type="number" class="change_time form-control " >  <select name="change_time_type_' + row + '" class="form-control" ><option>     ماه </option> <option>  روز </option><option>ساعت</option> </select><span class = "no_change"> <input name="change_' + row + '" class="change_' + row + '" id="change_no_' + row + '" type="radio" value="no" > ندارد  </span>  </td> </tr> ');

        specific_row_id[row] = row;
        change = '.change_' + specific_row_id[row];
        change_checked = '.change_' + specific_row_id[row] + ':checked'
        change_time = '#change_time_' + specific_row_id[row];

        alert(specific_row_id[row])

        $(change).change(function() { //2

            if ($(change_checked).val() == 'yes') {
                $(change_time).prop('required', true);
                $(change_time).prop('readonly', false);
                $(change_time).css('background', '#fff');
            } else {
                $(change_time).prop('readonly', true);
                $(change_time).css('background', 'rgba(255, 117, 117, 0.3)');
                $(change_time).prop('required', false);
            }
        }); //2
        row++;

    }); //1
});
</script>

新行将创建得很好!并且最后创建的行的脚本运行良好!但如果我创建另一个新行,javascrip脚本不适用于其他最后创建的行! 如何通过javascript或jquery创建新的javascript代码?

1 个答案:

答案 0 :(得分:2)

那是因为您使用全局变量来跟踪元素,因此您将覆盖前一行的引用。使用局部变量,以便每次都获得一组新的变量:

action