jQuery toggle()方法隐藏表行不起​​作用

时间:2013-12-12 19:48:45

标签: jquery

通过查看my fiddle可以最好地解释我的问题。在加载时,一切都正常工作,但是,当您将dd更改为Dos时,应该显示的唯一行是dos切换行。目前,Uno Toggle&正在显示Dos Toggle。

我有一个约束,我不能使用类,所以我试图使用jQuery的:eq()选择器,但我有问题找出第二个tr对象是哪个索引号。

这是我的jQuery代码,因为它不会让我在没有显示代码的情况下分享小提琴。

感谢任何帮助。

 $(document).ready(function () {
$("select[title='Numero']").closest("tr").next("tr").hide(); //commented out for debugging


 $("select[title='Numero']").change(function () {
     $("select[title='Dos Toggle']").closest("tr").closest("tr:eq(1)").toggle(); //dos toggle row
     $("select[title='Uno Toggle']").closest("tr").closest("tr:eq(2)").hide();
     //$("select[title='Uno Toggle']").closest("tr").closest("tr:eq(2)").toggle(); //this is original toggle code that didn't work.
 }); //close Numero.change()
 }); // close doc.ready

4 个答案:

答案 0 :(得分:2)

凭借你所拥有的,你可以做到:

 $("select[title='Numero']").change(function () {
     $(this).closest("tr").nextAll('tr').toggle();
     //Or to be more specific not to select any other trs if at all comes after these 2 you could do the below.
     //$(this).closest("tr").nextAll('tr:lt(2)').toggle();
 }); 

<强> Demo

答案 1 :(得分:1)

我打赌这是一个SharePoint列表表单...

以下是我过去在SharePoint表单上定位行的方法,它适用于您的小提琴...... DEMO

$(document).ready(function () {
     $("nobr:contains('Dos Toggle')").parent('h3').parent('td').parent('tr').toggle();

     $("select[title='Numero']").change(function () {
         $("nobr:contains('Uno Toggle')").parent('h3').parent('td').parent('tr').toggle();
         $("nobr:contains('Dos Toggle')").parent('h3').parent('td').parent('tr').toggle();
     }); //close Numero.change()

 }); // close doc.ready

答案 2 :(得分:0)

我首先将css类放在你试图显示和隐藏的行上。这样,你可以通过像$(“。numero-toggle”)。toggle();这样做来切换它们。在你的改变功能里面。您目前正在尝试的标记和方法非常脆弱,如果事物移动或标记发生变化,它可能会破坏。

答案 3 :(得分:0)

所以这就是我在收到的所有重要贡献之后使用:eq()元素想出的 -

$("select[title='Numero']").change(function () {
 $("select[title='Dos Toggle']").closest("tr").closest("tr:eq(1)").toggle(); //dos toggle row
 $("select[title='Uno Toggle']").closest("tr").closest("tr:eq(3)").toggle(); //uno toggle row
}); //close Numero.change()

但是,我永远无法让这个代码按照我想要的方式在SharePoint中切换...所以我最终使用了@ Schmalzy的建议 -

$("select[title='Numero']").change(function(){
            $("nobr:contains('Dos')").parent("h3").parent("td").parent("tr").toggle();      
            $("nobr:contains('Uno')").parent("h3").parent("td").parent("tr").toggle();      
}); //close

感谢您的帮助!