使用val()在jquery循环中设置html字符串的val

时间:2012-09-03 14:16:39

标签: javascript jquery

如何获取循环中的字符串v并使用jquery将值添加到输入id“MyInput”

以下是我的代码的简化版

var d='';

    $.each(row,function(i,v){

        //v = <div><p>gxsfsd</p><p>gxsfsd</p><input  type="hidden" id="Myinput" /><p>gxsfsd</p><p>gxsfsd</p><p>gxsfsd</p></div>"

    $(v).find("#MyInput").val("text set 1");

    d+= v;

    });

4 个答案:

答案 0 :(得分:2)

你可以试试这个

var d='';

$.each(row,function(i,v){
   d += v;
   $('#MyInput').val(d);
});

答案 1 :(得分:1)

您可以直接访问该元素,并且在您知道控件ID时无需查找,前提是该ID是唯一的。

试试这个,

var d='';

$.each(row,function(i,v){
   d+= v;
   $("#MyInput").val(d);
});

答案 2 :(得分:1)

如果您在页面中多次使用相同的ID,则访问元素时会遇到问题。

如果使用属性选择器而不是id选择器,仍然可以使用

var d='';

$.each(row,function(i,v){

  //v = <div><p>gxsfsd</p><p>gxsfsd</p><input  type="hidden" id="Myinput" /><p>gxsfsd</p><p>gxsfsd</p><p>gxsfsd</p></div>"

  $(v).find("[id=MyInput]").val("text set 1");

  d+= v;

});

答案 3 :(得分:1)

正如已经指出的那样,多次使用类而不是相同的ID,或者如果你还有上下文的话,就把它们都留下来......我会做this fiddle之类的事情:

var d = [], // collect in an array for better handling
    row = $('.row');

$.each(row, function(i,v){
    var input = $('input', $(v));
    input.val("text set "+i);
    d.push(v);
});

console.log(d);

请注意,我的带有.row div的HTML只是作为一个例子,只要我知道你的“行”是什么类型的对象,我就可以调整这个解决方案。