0

我有以下html代码

     <div class="span4 child_age_box">
           <input class="child_age_input" value="2">
     </div>

在触发事件时,我想在 jquery 之后克隆并附加块。

var child_value_input= $('.child_age_input');

var add_box = function (){$('.child_ages').on("change",function(){
    $(this).parent().parent().parent().find('.child_age_box').empty();
   for(var i= 0; i< parseInt($(this).val()); i++){
            $(this).parent().parent().parent().find('.child_age_box').append(child_value_input.clone().show().get(0).outerHTML)
}});

似乎没问题,当我触发事件时。盒子出现了,我可以在里面放一些价值。但是当我要求$('.child_age_input'). 我看不到我在文本框中输入的值。有什么我想念的吗?

4

2 回答 2

1

不要相信,取而代之的是outerHTML获得实际价值。.val()如果源代码中的 value 属性为 2,则即使您更改了 outerHTML(至少在 Chrome 中),outerHTML 仍将显示 2:

var fld = $('.child_age_input');
fld.val('3');
$(document.body).append(fld.clone());

$('.child_age_input').each(function(){
   console.log(this.outerHTML, $(this).val()); 
   // 2x <input class="child_age_input" value="2"> 3 
});

http://jsfiddle.net/HQsrQ/

于 2013-06-17T20:18:01.003 回答
0

我认为这会导致 $(this).parent().parent().parent().find('.child_age_box').empty() 您调用的错误,empty()因此该child_age_input元素已从 DOM 中删除

在另一张纸条上,而不是parent().parent()这样,您可以使用closest()

于 2013-06-17T20:13:56.930 回答