如何用jQuery替换父div的内容

Man*_*n_E 4 jquery parent

我有这个html代码:

<div id="ht_key" class="ht_all">
    <div class="ht_bottom">
        <div class="ht_bottom_p">
            <span class="ht_bottom_o">
                <a href="javascript:;" onclick="htrc('key');\">click</a>
            </span>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

该代码可能会在页面中出现 5-6 次(或更多)。我想从 htrc 函数中将 #ht_key div 替换为其他一些内容。(“密钥”在每种情况下都不同)。问题是,如果页面中有 2 个具有相同“key”的 div,那么当 htrc 函数发生时,只有第一个 #ht_key div 被替换。因此,由于我需要替换单击 a(从中调用 htrc 函数)的 #ht_key div 的内容,有没有办法替换其父 div(具有 id 的父 div)?

我尝试过父级和最接近的,但没有一个返回结果。您有什么建议吗?

谢谢!

use*_*716 5

我的建议是使用ht_keyaclass而不是id

<div class="ht_key ht_all">
Run Code Online (Sandbox Code Playgroud)

这样你的 HTML 就有效了。

或者将 更改onclick为 pass this,然后执行closest()up to ht_all

<a href="#" onclick="htrc(this);">click</a>
Run Code Online (Sandbox Code Playgroud)

js

htrc( el ) {
    $(el).closest('.ht_all');
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如果您采用这种方法,我将使用 HTML5data-属性ht_key

<div data-key="somekey" class="ht_all">
Run Code Online (Sandbox Code Playgroud)

如果您使用的是最新版本的 jQuery,您可以执行以下操作:

htrc( el ) {
    var $all = $(el).closest('.ht_all');
    var key = $all.data('key');
}
Run Code Online (Sandbox Code Playgroud)