我有以下代码:
$('input[id$="txtTecnicas"]').bind('keypress', function (e) {
//if user presses enter
if (e.keyCode == 13) {
//cancel asp.net postback
e.preventDefault();
//if value of textbox is not empty
if ($(this).val() != "") {
//Save value into valueTec
var valueTec = $(this).val();
//Clear textbox value
$(this).val("");
//Create tag div to insert into div
var texthtml = '<span class="tag" title="' + valueTec + '">' + valueTec + ' <a>x</a><input type="hidden" value="1" name="tags"></span>';
//Append the new div inside tecTagHolder div
$('[id$="tecTagHolder"]').append(texthtml);
}
}
});
然而,它没有将代码插入到tecTagHolder div中,并且因为它需要在tecTagHolder中插入许多div,每次用户按Enter键时,我都不能使用.html()
命令但是附加它不会附加甚至是“你好”的字符串!怎么可能是错的?非常感谢!
答案 0 :(得分:2)
为什么不直接选择tecTag:
$("#<%=tecTagHolder.ClientID %>").append(texthtml);
答案 1 :(得分:1)
您可以使用以下内容:
$('[id$="tecTagHolder"]').html( $('[id$="tecTagHolder"]').html() + texthtml );
但是我建议你像这样生成那个元素:
var span = $('<span></span>').addClass('tag').attr('title', valueTec).text(valueTec);
var a = $('<a></a>').text('x');
.. and so on
然后使用如下构造元素:
span.append(a).append(input);
然后你可以将跨度附加到$('[id $ =“tecTagHolder”]')。
如果有帮助,请告诉我:)。