我不确定如何更新正确的div和点击的正确链接。我不认为我理解父母,兄弟,查找,上一页,下一页等的财产使用情况。
我使用AJAX提交表单,并且需要使用class' record-info'更新段落标记。然后点击课程' cancelas'。
的链接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
如果我在console.log中显示正确的信息,但是当我尝试获取'记录信息'段落,它显示为未定义。我已经尝试过.parent()。find(),. siblings(),. 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>
答案 0 :(得分:4)
.record-info
不是您的表单的兄弟,所以只是获取父级并在其中查找将无效。
尝试closest()
,它将遍历DOM树,直到找到匹配项(父项只遍历一个级别,父级):
thisform.closest('.record').find('.record-info').html(replaceText);
触发点击同样如此:
thisform.closest('.record').find('.cancelas').click();
注意:我在.record
使用了closest()
,因为我认为它是“记录”中的公共类。 .closest('.catname')
在 此 案例中同样有效。