2012-08-31 18 views
3

我會嘗試用簡單版本的代碼解釋我的問題,我會省略ajax的東西。修改html的一個子集,並附加上jquery

我想要做的是通過ajax檢索表單並修改一些值並追加它。這應該是很容易的,但我只是沒有得到它的工作。

我的代碼...

<html> 
<head> 
    <title>Test Jquery</title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      var str = "<div><form><textarea></textarea></form></div>" 
      $('a#action').on('click',function(e){ 
       e.preventDefault(); 
       var result = str; 
       var test = $("textarea",result).html("Hello world"); 

       console.log(test); 
       console.log(result); 
       $(".sections").append(result); 
      }); 
     }); 
    </script>​​​​​​ 
</head> 
<body> 
<div id="content"> 
    <a href="#" id="action">go action</a> 
<div class="sections"> 

</div> 
</div> 
</body> 
</html># 

變量str應該從服務器模擬下載表格... 上點擊我想改變

textarea和插入"Hello World" ...

我想看到的是我的str變量修改和追加到部分股利...

我可以一個子集內修改文本區域

$("textarea",result).html("Hello world"); 

但我不知道如何體現它在整個結果...

就像我說的,這是一個簡單的抽象所以str可以不同...

回答

4

嘗試以下操作:

var str = "<div><form><textarea></textarea></form></div>"; 
$('a#action').on('click',function(e){ 
    e.preventDefault(); 
    var result = str; 
    var $ajaxForm = $(str); 
    $("textarea", $ajaxForm).val("Hello world"); 
    $ajaxForm.appendTo($(".sections")); 
});​ 

DEMO

請注意,$("textarea",result).html("Hello world")在您的示例中不起作用,因爲result只是一個字符串;它需要要麼DOM元素或一個jQuery對象:

jQuery的(選擇器[,上下文])

選擇器 - 包含一個選擇器表達式串

上下文 - 甲DOM 使用元素,文檔或jQuery作爲上下文

+0

謝謝!它的工作,完美! –

0

您需要將結果第一追加到DOM。

然後嘗試

​​