通过查看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
答案 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
感谢您的帮助!