我想做什么。我有一个在新标签页面中打开的表单。我想提交一些额外的东西: a)删除' target = _blank' b)保留未来的形式
以下是样本表格:
<div id="cloneForm">
<form id="searchForm" method="post" target="_blank" action="#">
</form>
</div>
所以我提出来了: 为了保持表单完整,我将jQuery克隆到变量:
var searchForm = $('#searchForm').clone();
var cloneForm = $('#cloneForm').clone(); // This is just for workaround
但是已经使用$(&#39; #clickForm&#39;)find('[target="_blank"]')
的选择器不再有效。 (我想知道为什么?)。此选择器仅适用于&#34; cloneForm&#34;。
所以我可以做两件事:
searchForm[0].target
设置为cloneForm.find('[target="_blank"]').removeAttr('target')
但我不喜欢这两个。我不想添加额外的div cloneForm。我都不喜欢通过数组访问目标。
有更好的建议吗?
答案 0 :(得分:0)
表单是集合中的顶级对象,也是集合中唯一的顶级对象。只需在其上使用attr
:
cloneForm.attr("target", "new value");
// or
cloneForm.removeAttr("target");
如果它不是集合中的唯一对象,则使用filter
来获取一个只包含该对象的新集合:
cloneForm.filter('[target="_blank"]').attr("target", "new value");
// or
cloneForm.filter('[target="_blank"]').removeAttr("target");
...但在你的情况下没有必要,因为你知道只有一个顶级元素。