我试图将插入的行隐藏到具有“newrow”类的表中。
普通行有一个添加按钮,可以在它们下面添加这些新行。我有一个“隐藏”按钮,当我点击时,我想要隐藏“newrow”的插入,这将是表格行点击按钮后的行。香港专业教育学院试图解决它,并提出一个解决方案,但它不工作和越野车和写得不好。有什么想法吗?
继承我的隐藏方法
$(document).ready(function(){
$(".hideRow").click(function(event){
var found;
found=false;
$('tr').each( function() {
if($(this).attr('class')=='newrow'){
$(this).hide();
found=true;
}
else if(found==true && $(this).attr('class')=='row'){
return false;
}
});
});
});
答案 0 :(得分:3)
不确定你想要实现的目标,但根据你所写的内容,这应该足够了。
$(".hideRow").click(function() {
$(this).parents("tr").nextUntil("tr:not(.newrow)").hide();
});
经过测试here。
答案 1 :(得分:2)
jQuery具有内置函数来查找类名。当您使用attr('class')
获取class属性时,它包含所有类的字符串,因此您可能会获得newrow row
等。当您尝试将其与newrow
进行比较时,您将无法匹配。
$(document).ready(function(){
$(".hideRow").click(function(event){
$('tr .newrow').hide();
});
});
如果您只想将点击的行中的行转到下一个普通row
类,则可以使用.nextUntil()
:
$(document).ready(function(){
$(".hideRow").click(function(event){
$(this).parents('tr').nextUntil('.row').hide();
});
});
如果您的newrow
元素也是类row
,则需要执行此操作:
$(document).ready(function(){
$(".hideRow").click(function(event){
$(this).parents('tr').nextUntil(':not(.newrow)').hide();
});
});
如果我知道html的结构,这可能会被优化。我不知道,我基本上在猜测。
同样,仅供参考,您的return false
实际上从.each()
次迭代返回,而不是从.click()
处理程序返回。
答案 2 :(得分:2)
是的,看起来过于复杂。您可以将CSS设置为display:none的类隐藏窗口。然后,您可以随意添加或删除此类。或者您可以使用hide();
根据我的理解,用户点击A行上的“添加”,然后创建行B,C ......然后,用户可以在行A上单击“隐藏”以隐藏行B,C ... < / p>
你最好给A行一个唯一的id(例如R32),然后给它创建一个类(C32--代表32的孩子)。然后当在R32上单击隐藏按钮时,您将关闭:
$('.C32').hide();
或者如果你创建了一个带有display none的类隐藏行:
$('.C32').addClass('hiderow');
您可以使用show();
或removeClass('hide row');
撤消上述内容。您也可以使用toggle();
所有这些假设您可以拥有多个包含要隐藏的子项的表行。如果不是这种情况,则可能不需要为该行的子项使用唯一的行id和类。
答案 3 :(得分:1)
这应该可以解决问题。
$('.hideRow').click(function(){
$('.newrow').hide();
}
否则你需要显示更多代码。尝试使用http://jsfiddle.net或类似网站更轻松地共享代码。
答案 4 :(得分:1)
如果动态创建行,请尝试使用
$('.newrow').live('click',function(){
});
这是jquery api文档http://api.jquery.com/live/
的链接