我将尝试用简化版的代码来解释我的问题,我将遗漏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
$("textarea",result).html("Hello world");
但我不知道如何将其反映到整个结果......
就像我说这是一个微不足道的抽象,所以str
可以有所不同......
答案 0 :(得分: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(selector [,context])
selector - 包含选择器表达式
的字符串上下文 - 一个DOM 要用作上下文的元素,文档或jQuery
答案 1 :(得分:0)
您需要先将结果附加到DOM。
然后尝试
form.find("textarea").val("Hello world");