以下链接帮助我在Jquery中获得搜索功能:
但我面临以下问题:
在上面的帖子中提到的脚本帮助我进行树搜索但是我正面临问题,因为这个脚本淡出了父匹配节点的子元素。问题陈述:
* parent one
* child one
* child two
* parent two
*孩子三
在上述情况下,如果我将搜索" 2" ,那么它将完全显示父母一个(父节点+儿童)和父母两个但不是它的孩子即孩子三
我希望你能解决我的问题吗?
请参阅我用于搜索功能的以下脚本:
$(document).ready(function(){
$("#filter").keyup(function(){
// Retrieve the input field text and reset the count to zero
var filter = $(this).val(), count = 0;
if(!filter){ // hide is no text
$(".commentlist li").hide();
return;
}
var regex = new RegExp(filter, "i"); // Create a regex variable outside the loop statement
// Loop through the comment list
$(".commentlist li").each(function(){
// If the list item does not contain the text phrase fade it out
if ($(this).text().search(regex) < 0) { // use the variable here
$(this).hide(); //**here I want to put condition that
//checks for parent element and if its parent then
//it should not fadeout the its child element**
// Show the list item if the phrase matches and increase the count by 1
} else {
$(this).show();
count++;
}
});
// Update the count
var numberItems = count;
$("#filter-count").text("Number of Comments = " + count);
});
});
答案 0 :(得分:0)
在.hide()之前插入这行代码符合我的要求。
if ($(this).parent().is(":visible")) {
$(this).hide();
}
else {
$(this).show();
}