Javascript 如何在jQuery克隆元素中找到textarea的值?
我试图找到克隆元素中存在的textarea的值,然后更改该值,但是当我将它们写到控制台时,我不断得到“未定义”的值 我的模板:Javascript 如何在jQuery克隆元素中找到textarea的值?,javascript,jquery,Javascript,Jquery,我试图找到克隆元素中存在的textarea的值,然后更改该值,但是当我将它们写到控制台时,我不断得到“未定义”的值 我的模板: <script type="text/template" data-template="test"> <div id="content"> <textarea id="txta">123</textarea> </div> </script> clone是包含文本的
<script type="text/template" data-template="test">
<div id="content">
<textarea id="txta">123</textarea>
</div>
</script>
clone
是包含文本的脚本标记。因此,它不包含供您操作的文本区域。您必须将文本转换为dom片段
var textarea = $(clone.html()).find("textarea");
演示:
注意,这实际上并没有以任何方式改变克隆
我建议这样做:
$("#btnChange").on('click', function () {
var templateName = 'test';
var html;
var el;
el = $("script[data-template=" + templateName + "]");
html = el.html();
console.log('html: ' + html); //**this works**
var template = $.parseHTML($(el).text());
console.log("template: " + template); //**this works**
var textarea = $(template).find("textarea");
console.log("txt val: " + textarea.val()); //**undefined**
textarea.val("abc");
console.log("txt val: " + textarea.val());
$("body").append(template);
});
你想用克隆做什么?+1道歉。我清理了标题和代码,删除了我的得票率、得票率和得票率。我从未见过
我不确定它有多普遍,一般来说,当你这样做的时候,你会有一个模板引擎来完成所有的工作,而不是我上面所做的。
$("#btnChange").on('click', function () {
var templateName = 'test';
var html;
var el;
el = $("script[data-template=" + templateName + "]");
html = el.html();
console.log('html: ' + html); //**this works**
var template = $.parseHTML($(el).text());
console.log("template: " + template); //**this works**
var textarea = $(template).find("textarea");
console.log("txt val: " + textarea.val()); //**undefined**
textarea.val("abc");
console.log("txt val: " + textarea.val());
$("body").append(template);
});