3

我将尝试用简化的代码版本来解释我的问题,我将省略 ajax 的东西。

我想要做的是通过 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 变量已修改并附加到部分 div ...

我可以修改子集中的文本区域

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

但我不知道如何将其反映到整个结果中......

就像我说的那样,这是一个微不足道的抽象,所以str可能会有所不同......

4

2 回答 2

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"));
});​

演示

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

jQuery( 选择器 [, 上下文] )

选择器 - 包含选择器表达式的字符串

context - 用作上下文的 DOM 元素、文档或 jQuery

于 2012-08-31T11:45:14.557 回答
0

您需要先将结果附加到 DOM。

然后尝试

form.find("textarea").val("Hello world");
于 2012-08-31T11:40:43.590 回答