2013-12-08 66 views
1

當使用下面的代碼時,我無法將HTML字符串添加到目標HTMLElement的innerHTML。我究竟做錯了什麼?有一個更好的方法嗎?jQuery,附加HTML字符串不工作

<html> 
    <head> 
     <title>Add HTML input with jQuery</title> 
     <!-- 
     * This code is meant to include the jQuery library v.1.9.1 
     * from Google API 
     --> 
     <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script> 
     <script> 
      $('document').ready(function(){ 
       $('#add').click(function(){ 
        var src = $('#src'); // alert(src); 
        var trgt = $('#src'); // alert(trgt); 
        var x = null; 
        var child = null; 
        var str = null; 

        if(null != src.val()){ 
         alert(1); 
         x = trgt.children().length; 

         str = '<input type="text" name="array[]" id="index' + x + '" value="' + src.val() + '" />'; 

         trgt.html().append(str); 


         src.val() = null; 
        }else{ 
         alert('src value is emppty'); 
        } 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <div id="box"> 
       <label></label> <input type="text" name="src" id="src" value="" /> <button id="add">+</button> 
       <div id="trgt"> 
       </div> 
     </div> 
    </body> 
</html> 
+1

[Yoda條件](http://www.codinghorror.com/blog/2012/07/new-programming-jargon.html) –

回答

1

這個var trgt = $('#trgt')不是我注意到的唯一問題。

trgt.html().append(str);這應該是trgt.append(str);

然後src.val() = null;,你想重置<input>的值嗎?你可以簡單地做到這一點src.val('');

看到這個jsfiddle

2

var trgt = $('#src'); ...您的源和目標選擇器是相同的。

+0

好的該死的不能相信我沒有注意到, – Deryck

+0

現在我感覺像一個白癡。感謝您的發現。 –