Javascript 克隆到a<;后无法从select中检索选定值;表格>;
通过克隆字段,例如从“fs form”,每当“fs form”更改/更新时,我都无法检索所选值Javascript 克隆到a<;后无法从select中检索选定值;表格>;,javascript,jquery,Javascript,Jquery,通过克隆字段,例如从“fs form”,每当“fs form”更改/更新时,我都无法检索所选值 $("<form>").append($('fieldset[name=fs-form]').clone()) jQuery选择器基于CSS选择器 因此,当您第一次执行$(“”)时,它会搜索与标记的最佳匹配,但不会返回元素对象 而在第二种情况下,CSS选择器进入图片,搜索元素form,并返回jQuery元素对象 以下是您将获得的结果示例: console.log(jQuery('<
$("<form>").append($('fieldset[name=fs-form]').clone())
jQuery选择器基于CSS选择器 因此,当您第一次执行
$(“”)
时,它会搜索与标记
的最佳匹配,但不会返回元素对象
而在第二种情况下,CSS选择器进入图片,搜索元素form
,并返回jQuery元素对象
以下是您将获得的结果示例:
console.log(jQuery('<div class="post-menu">'));
Result: n.fn.init [div.post-menu]
console.log(jQuery('.post-menu'));
Result: n.fn.init [div.post-menu, prevObject: n.fn.init(1), context: document, selector: ".post-menu"]
console.log(jQuery(“”));
结果:n.fn.init[div.post-menu]
log(jQuery('.post菜单'));
结果:n.fn.init[div.post-menu,prevObject:n.fn.init(1),上下文:文档,选择器:“.post-menu”]
请注意带有选择器和不带选择器的结果。
要访问要进行操作的元素(如您的案例append),请始终使用标准CSS选择器。A.
$(“表单”).append($('fieldset[name=fs form]')。clone())
:
表单
标签。name=fs form
搜索所有字段集元素表单元素
表单
元素,包括所有字段集元素$(“”)。追加($('fieldset[name=fs form]')。克隆())
:
表单
元素。name=fs form
搜索所有字段集元素。(与上述章节的第二阶段相同)表单
元素表单
元素,包括所有字段集元素$(“”)
时,实际上您将fielset
从现有表单中分离出来,并将其附加到新创建的表单中。因此,事实上,前面的表单不包含任何字段集元素
但是当您使用$('form')
时,字段集元素将从中提取并再次添加到其中
请参阅下面的示例以了解这两者之间的区别
示例A:
函数复制(){
var copy=$('form').append($('fieldset[name=“fs form”]”).clone();
copy.appendTo('body')
}
名称:
电邮:
克隆与美元;('form')和追加到正文
此$(“”)是不合适的css选择器。请注意,jQuery使用css选择器。感谢您花时间解释@Dhruvin。“因此,当您第一次执行$(“”)时,它将搜索与标记的最佳匹配,但不返回元素对象。”那么,如果允许查找n搜索,它将返回什么?至于表单,$(“”),它返回了许多想要的元素,但实际上并不是它的状态?@lilsizzo$(“”)
将只返回搜索结果,并且只会说
存在,长度为1,而如果执行$(“表单”)
它将返回包含这些元素的所有表单实例。“它返回了很多想要的元素,但实际上并不是它的状态?”-这是一个更深层次的问题,但似乎几乎所有的值/选定的值都可以检索到,但其中的值无法检索到Kavian,“所以,当您使用$(“”),实际上,您将fielset与现有表单分离,并将其附加到新创建的表单。因此,事实上,以前的表单不包含任何字段集元素”。因此,当我们从现有表单获取字段集时,是否应该将值/所选值追加到字段集中?在我的例子中,几乎所有字段、其值或选定值都可以检索/搜索。但是对于标记,我可以使用ntfrom:出于性能原因,某些表单元素的动态状态(例如,键入到textarea的用户数据和用户对select的选择)不会复制到克隆的元素中。克隆输入元素时,元素的动态状态(例如,键入文本输入的用户数据和用户对复选框的选择)保留在克隆的元素中
console.log(jQuery('<div class="post-menu">'));
Result: n.fn.init [div.post-menu]
console.log(jQuery('.post-menu'));
Result: n.fn.init [div.post-menu, prevObject: n.fn.init(1), context: document, selector: ".post-menu"]