我需要隐藏"显示回复"当我点击显示它们。问题是,当我点击"显示回复"所有"显示回复"按钮隐藏。我只需要隐藏我点击的那个。这是jQuery代码:
select id from `jsontest` where JSON_SEARCH(`foo`, 'all','bar') is not null;
答案 0 :(得分:0)
$(".replies_show")
选择具有该类的所有元素,因此您选择所有这些元素,然后再次将replaceWith
应用于所有元素。但是,该回调函数中的this
是指刚刚单击的元素(即唯一被点击的元素,而不是所有这些元素)。
此外,请勿使用replaceWith
功能隐藏元素,而是使用.hide()
。
所以,替换
$(".replies_show").replaceWith(" ");
使用
$(this).hide();
答案 1 :(得分:0)
您可以使用this
获取当前元素。否则,您将选择.replies_show
类的所有元素。
$('.replies_show').on('click', function(e, el) {
$(el).replaceWith(' '); // Does what you're looking for
$(el).hide(); // Might be better, depending on what you're doing
$(this).next('.replies').show();
e.preventDefault();
});

答案 2 :(得分:0)
使用.hide()
功能而非.replaceWith()
$(".replies_show").click (function(e){
$(this).hide();
$(this).next(".replies").show();
e.preventDefault();
});
答案 3 :(得分:0)
由于您只需要定位clicked
项,因此您需要在回调函数中使用$(this)
,如下所示:
$(".replies_show").click (function(e){
var $this = $(this); // cache $(this)/clicked element
$this.hide(); // clicked item will be hide (display: none)
$this.next(".replies") // next matched item of clicked item
.show();
e.preventDefault();
});