javascript - 在查询中使用 Replace with 替换多个元素

标签 javascript jquery

我有一个 textareabutton,需要用新的替换。我在 jquery 中使用 replaceWith 来实现此目的,但似乎我做错了。

这是我的 JavaScript:

<script>
$(document).ready(function () {
     $(document).on('click', 'div', function(){
     $('textarea, button').replaceWith('<textarea>New</textarea><button>Old</button>');
     });
});
</script>

我的 HTML:

<textarea>Old</textarea>
<button>Old</button>

<div>Replace</div>

单击Replace div 应将 文本区域和按钮替换为新文本区域和按钮,但由于某种原因,它会导致显示 2 个文本区域和 2 个按钮。

尝试使用 $('textarea', 'button') 但这根本没有任何作用。

最佳答案

如果根据您在其他地方的评论,您无法出于文本目的将两个元素分开,那么您应该确保两个现有元素共享一个共同的父元素(例如 <div> ),然后替换内容 该父级:

<div id="parent">
  <textarea>Old</textarea>
  <button>Old</button>
</div>

$('#parent').empty().append(newContent);

或者,如果您无法更改下载的 HTML,则在事件处理程序中,如果您可以假设“替换”div 和原始内容之间没有其他匹配元素:

$(this).prevAll('button').first().remove();
$(this).prevAll('textarea').first().remove();
$(this).before(newContent);

关于javascript - 在查询中使用 Replace with 替换多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23993604/

相关文章:

javascript - 如何用数组对象填充 jstree 子级并在单击时返回它

javascript - 向嵌套类添加新元素

javascript - [Wordpress + PHP + MySQL]插件内的数据库SELECT查询没有返回结果

javascript - 在 Safari 扩展中设置新标签页/窗口 URL

javascript - 当页面位于 iframe 中时无法使用 javascript 选择单选按钮

javascript - 克隆div元素并使用相同的按钮操作原始元素和克隆元素?

php - 使用javascript将单词数组与文本区域输入进行比较

javascript - 这个插件要求回调字符串是什么格式? (jquery-ui-multisearch)

jquery - 如何获取JQGrid中的单元格值?

javascript - 输入字段值的动态总计(在输入之后、提交之前)