使用jQuery将元素插入div,追加不起作用

时间:2013-03-12 23:42:38

标签: jquery asp.net

我有以下代码:

$('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()命令但是附加它不会附加甚至是“你好”的字符串!怎么可能是错的?非常感谢!

2 个答案:

答案 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”]')。

如果有帮助,请告诉我:)。