2013-03-12 83 views
1

我有以下代碼:插入元件與jQuery的DIV,追加不工作

$('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格,並且由於它需要插入tecTagHolder很多的div,一個每次用戶按下回車鍵,我都不能使用.html()命令,但是附加它後面不會附加「Hello」字符串!有什麼可能是錯的?非常感謝!

回答

2

爲什麼不選擇tecTag像這樣:

$("#<%=tecTagHolder.ClientID %>").append(texthtml); 
+0

這是asp.net那裏的對象更改名稱時,對象已經RUNAT =「服務器」,使用$(「#tecTagHolder」)是不會工作。 – 2013-03-12 23:50:26

+0

修正了,試試。 – tymeJV 2013-03-12 23:51:38

+0

你是否收到錯誤?你確定你的選擇器實際上是抓取你想要的DOM元素嗎?沒有你的標記,很難看出什麼是錯的。 – iGanja 2013-03-12 23:52:10

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」]')。

讓我知道如果這能幫助:)