javascript - 在 jQuery 对象顶层查找

标签 javascript jquery html forms

我正在尝试做的事情。我有一个在新选项卡中打开的表单。我想提交带有一些额外内容的表格: 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

但是在 $('#cloneForm') find('[target="_blank"]') 上工作的选择器不再工作。 (我想知道为什么?)。该选择器仅适用于“cloneForm”。

所以我可以做两件事:

  • 我可以通过以下方式访问目标属性:searchForm[0].target 设置为某物
  • cloneForm.find('[target="_blank"]').removeAttr('target')

但这两个我都不喜欢。我不喜欢添加额外的 div cloneForm。我也不喜欢通过数组访问目标。

有更好的建议吗?

最佳答案

表单是集合中的顶级对象,也是集合中唯一的顶级对象。只需使用 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");

...但是您的情况没有必要,因为您知道只有一个顶级元素。

关于javascript - 在 jQuery 对象顶层查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875877/

相关文章:

javascript - 调整大小时 slider 全宽

javascript - 通过文件输入从视频文件创建缩略图

html - 在 html 中单击图像时播放声音

javascript - 将鼠标悬停在同一行的最后一个元素上时更改 'tr' 的背景颜色

javascript - 长度没有返回正确的值

javascript - 如何获取firebase文件存储的下载Url

javascript - 每次我点击谷歌地图 API 中的位置点时,信息窗口都会显示在同一位置

javascript - Angular 代码未显示在 html 页面上

javascript - 使用 Jquery 编辑类

javascript - 带有 HTML 内容解析的变量