我有这个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>
此代码可在第5-6页(或更多)中看到。 我希望从htrc函数替换#ht_key div与其他一些内容。 (“关键”在每种情况下都不同)。问题是如果在页面中有2个具有相同“键”的div,那么当htrc函数发生时,则只替换第一个#ht_key div。因此,我需要替换#ht_key div的内容,其中a(从中调用htrc函数)被单击,是否有任何方法可以替换其父div(具有id的父div)?
我已经尝试了父亲和最近但是没有一个返回结果。你有什么建议吗?
谢谢!
答案 0 :(得分:4)
我的建议是将ht_key
设为class
而不是id
。
<div class="ht_key ht_all">
这样您的HTML就有效了。
或者更改onclick
以通过this
,并closest()
最多ht_all
:
<a href="#" onclick="htrc(this);">click</a>
JS
htrc( el ) {
$(el).closest('.ht_all');
// ...
}
如果采用这种方法,我会为data-
使用HTML5 ht_key
属性:
<div data-key="somekey" class="ht_all">
如果你使用的是最新版本的jQuery,你可以这样做:
htrc( el ) {
var $all = $(el).closest('.ht_all');
var key = $all.data('key');
}
答案 1 :(得分:1)
我认为#ht_key实际上是一个锚的父级(在这种情况下,你在代码片段中缺少结束标记)。我会删除“onclick”并绑定事件处理程序,如下所示:
$("span.ht_bottom_o a").click(function(){$(this).closest(".ht_all").html(...)});