我正在尝试使用下面的代码将一个 div 替换为另一个 div onclick。它适用于一个实例。但是,问题是当类出现不止一次时,我就是这种情况(多个实例),它显然会更改所有实例,因为它们具有相同的类名。 有没有办法让它只改变点击的实例?谢谢
HTML
<div id="test"></div>
JavaScript(动态创建 HTML)
var html =
'<form action="test.php" method="get" class="myForm">' +
'<input type="hidden" name="mID" value="' + this.id + '"/>' +
'<input type="image" class="send" src="this.image" name ="send" alt="submit"/>' +
'</form>';
$('div#test').append(html);
$("#test").on('click', '.send', function(e) {
e.preventDefault();
var $form = $(this).closest('form');
$.get($form.attr("action"),
$form.find(":input").serializeArray(),
function(data) {
$('.myForm').replaceWith('<div class="myForm2"><img src="Icons/PNG/tick 2.png" alt="submit"/></div></div>');
});
});
$("#test").on('submit', '.myForm', function(e) {
return false;
});
解决方案;
代替;
$('.myForm').replaceWith('<div class="myForm2"><img src="Icons/PNG/tick 2.png" alt="submit"/></div></div>');
正确的方法;
$form.replaceWith('<div class="myForm2"><img src="Icons/PNG/tick 2.png" alt="submit"/></div></div>');
最佳答案
您已经使用 $form = $(this).closest('form');
完成了大部分工作,但由于某种原因,您开始选择所有表单,而不是使用 $('.myForm')
, 所以
替换
$('.myForm').replaceWith(
...
与
$form.replaceWith(
...
关于javascript - 如何用另一个 Div 替换一个 Div 但只替换一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36683650/