Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 克隆到a<;后无法从select中检索选定值;表格>;_Javascript_Jquery - Fatal编程技术网

Javascript 克隆到a<;后无法从select中检索选定值;表格>;

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('<

通过克隆字段,例如从“fs form”,每当“fs form”更改/更新时,我都无法检索所选值

$("<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
    搜索所有字段集元素
  • 将搜索的字段集元素追加到搜索的
    表单
    元素
  • 复制
    表单
    元素,包括所有字段集元素
  • B.
    $(“”)。追加($('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"]