Javascript 用类查找同级元素并用jQuery替换html内容
我不知道如何更新正确的div和单击正确的链接。我不认为我了解父母、兄弟姐妹、查找、上一个、下一个等的属性用法 我正在用AJAX提交表单,需要用“record info”类更新段落标记,并单击带有“cancelas”类的链接 AJAX:Javascript 用类查找同级元素并用jQuery替换html内容,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我不知道如何更新正确的div和单击正确的链接。我不认为我了解父母、兄弟姐妹、查找、上一个、下一个等的属性用法 我正在用AJAX提交表单,需要用“record info”类更新段落标记,并单击带有“cancelas”类的链接 AJAX: $('form').on('submit', function(e){ if($(this).attr('id') == 'editdelete'){ var thisform = $(this); $.ajax({
$('form').on('submit', function(e){
if($(this).attr('id') == 'editdelete'){
var thisform = $(this);
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize(),
success: function() {
var replaceText = thisform.find('input[name="extraedit"]').val();
console.log(thisform.parent().find('.record-info').html());
thisform.parent().find('.record-info').html(replaceText);
thisform.parent().find('.cancelas').click();
}
});
e.preventDefault();
}
});
replaceText
在控制台中显示正确的信息(如果I console.log),但当我尝试获取“记录信息”段落的内容时,它显示为未定义。我已经尝试了.parent().find(),.sides(),.next(),.prev()以及这两者之间的所有内容
以下是HTML结构:
<div class="catname record">
<p class="record-info">Info is here</p>
<p class="editmain">Edit</p>
<p class="markmain">Mark</p>
<form class="markas">FORM IS HERE</form>
<div class="editas">
<div>
<form action="edit-delete.php" id="editdelete" method="post">
<input name="extraedit" type="text">
</form>
<form action="edit-delete.php" id="editdelete" method="post">
FORM CONTENT
</form>
</div>
</div>
<p class="cancelas">Cancel</p>
</div>
信息在这里
编辑
标记
表格在这里
形式内容
取消
.record info
不是表单的同级,因此仅获取父级并在其中查找将不起作用
请尝试closest()
,它将向上遍历DOM树,直到找到匹配项为止(其中父级只遍历父级的一个级别):
触发您的单击也是如此:
thisform.closest('.record').find('.cancelas').click();
注意:我在这里使用了.record
中的closest()
,因为我假设它是“records”中的公共类.closest('.catname')
在这种情况下同样适用
.record info
不是表单的同级,因此仅获取父级并在其中查找将不起作用
请尝试closest()
,它将向上遍历DOM树,直到找到匹配项为止(其中父级只遍历父级的一个级别):
触发您的单击也是如此:
thisform.closest('.record').find('.cancelas').click();
注意:我在这里使用了.record
中的closest()
,因为我假设它是“records”中的公共类.closest('.catname')
在这种情况下同样适用
文档中是否有多个表单,其中多个控件具有相同的类?否则,您可以简单地执行
('.record info').html(replaceText)
您的文档中是否有多个表单和多个控件具有相同的类?否则你只需执行('.record info').html(replaceText)