我有以下代码显示和隐藏内容,问题是当我点击"显示更多"它打开了所有其他部分,而不是我点击的那个特定部分和"显示更少"
这是我的代码和fiddle demo
$(document).ready(function() {
$("h4.showMore").on("click",function() { $(this).parent().find(".hideResult").addClass("showResult").removeClass("hideResult");
$(this).parent().find(".showMore").css("display", "none");
$(this).parent().find(".showLess").css("display", "block");
});
$("h4.showLess").on("click",function() {
$(this).parent().find(".showResult").removeClass("showResult").addClass("hideResult");
$(this).parent().find(".showMore").css("display", "block");
$(this).parent().find(".showLess").css("display", "none");
});
});
答案 0 :(得分:1)
演示:https://jsfiddle.net/8y1dp5ej/3/
在每个部分周围放置div
jsonVals += '<div class="newSection">'; // ADDED THIS
// the rest of the code with all the information
jsonVals += '</div>'; // ADDED THIS
然后使用.closest()
函数查找哪个show more
或show less
按钮属于哪个部分
$("h4.showMore").on("click",function() {
$(this).closest('.newSection').find(".hideResult").addClass("showResult").removeClass("hideResult");
$(this).closest('.newSection').find(".showMore").css("display", "none");
$(this).closest('.newSection').find(".showLess").css("display", "block");
});