按名称选择div中的输入

时间:2012-11-06 17:39:33

标签: jquery jquery-selectors css-selectors

我需要使用第二个(动态生成的)div中的值来更新表单的某些输入字段的值。

这是代码

$("#second_update_form_data :input").each(function(index) {

//find all input fields in the second div
                var FieldName = $(this).attr("name");
                var FieldValue = $(this).val();

  //try to get the corresponding field from the original form to change it
                var Selector = "#TT_CartForm__form input[name=" + FieldName + "]";
                var OriginalFiled = $(Selector);

这不起作用,但我不确定为什么。我可以在原始输入字段中添加一个id并使用它来选择它们,但我更愿意理解错误并使用正确的选择器。

提前致谢, 亲切的问候

编辑: 对不起,我意识到我没有说明哪部分不起作用。 这是最后一行,当我尝试选择使用Selector时,这是最后一个似乎是错误的

4 个答案:

答案 0 :(得分:3)

  

根据您的更新进行更新

var OriginalFiled = $('#TT_CartForm__form input[name="' + FieldName + '"]');

尝试更改引号以确保字符串可读。需要注意的是,只有在指定了!DOCTYPE时,IE7和IE8才支持属性选择器。在IE6中 - 他们不会全部工作

另外仔细检查您的元素ID名称,我注意到它有两个下划线区域,一个区域有两个下划线。确保持有输入的div具有完全相同的id值

答案 1 :(得分:2)

选择器快一点:

$('#second_update_form_data').find('input').each(function(index) {

    //find all input fields in the second div
    var fieldName     = $(this).attr('name'),
        fieldValue    = $(this).val(),

    //try to get the corresponding field from the original form to change it
        selector      = 'TT_CartForm__form input[name=' + fieldName + ']',
        originalFiled = $(selector);

答案 2 :(得分:0)

变化:

$("#second_update_form_data :input")

$("#second_update_form_data input")

答案 3 :(得分:0)

您的问题是动态生成的div。你需要使用.on()

jQuery.on()