我正在动态添加文本框,如:
$('.myClass').html("<input type='text' class='txtVector' value='" + textValue + "'>");
我在名为“textValue”的变量中添加文本框值。但问题是,如果变量“textValue”包含带单引号(')或双引号(“)的值,如abcd'xyz或abcd”xyz,则文本框值看起来像此值=“abcd'xyz”或值=“abcd”xyz“。在这种情况下,值一旦获得下一个引号就会截断。我的意思是文本框值只是abcd而不是abcd'xyz。有人可以建议如何解决这个问题吗?
答案 0 :(得分:4)
您可以使用val()
:
$('.myClass').html("<input type='text' class='txtVector'>").children().val(textValue);
或者
$('.myClass').append(
$("<input type='text' class='txtVector'>").val(textValue)
);
或者
$("<input type='text' class='txtVector'>").val(textValue).appendTo(".myClass");
请参阅val(string)
docs。这样做的好处是可以正确处理其他特殊字符(例如&
)。
答案 1 :(得分:3)
试试这样:
$('.myClass').html(
$('<input/>')
.attr('type', 'text')
.addClass('txtVector')
.val(textValue)
);
或者如果您愿意:
$('.myClass').html(
$('<input/>', {
type: 'text',
class: 'txtVector',
value: textValue
})
);
答案 2 :(得分:2)
也许两次这样做应该可以胜任?
$('.myClass').html("<input type='text' class='txtVector' value='' id='whatever'>");
$('#whatever').val(textValue);
答案 3 :(得分:1)
var $html=$("<input type='text' class='txtVector'>").val(textValue);
$('.myClass').empty().append($html);