Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用类查找同级元素并用jQuery替换html内容_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 用类查找同级元素并用jQuery替换html内容

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({

我不知道如何更新正确的div和单击正确的链接。我不认为我了解父母、兄弟姐妹、查找、上一个、下一个等的属性用法

我正在用AJAX提交表单,需要用“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
在控制台中显示正确的信息(如果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)