我有一堆反复重复的一些HTML代码:
<div class="collapse" id="any_mins">
<fieldset>
<legend><img title="Click to expand" class="plus" alt="+" src="" />Heading</legend>
<table class="mins_table">
lots of rows and cells go here
</table>
</fieldset>
</div>
表格中有表单元素,主要是文本框和选择。我有一些jQuery,如果包含表中有非空表单元素,则会突出显示<legend>
标题。它看起来像这样:
// input td tr tbody table legend img
$("input[type='text'][value!=0]").parent().parent().parent().parent().show();//the table
$("input[type='text'][value!=0]").parent().parent().parent().parent().siblings().children().attr("src", minus_path);//the image
$("input[type='text'][value!=0]").parent().parent().parent().parent().siblings().addClass("highlighted")//the legend
// option select td tr tbody table legend img
$("option:selected[value!=0]").parent().parent().parent().parent().parent().show();//the table
$("option:selected[value!=0]").parent().parent().parent().parent().parent().siblings().children().attr("src", minus_path);//the image
$("option:selected[value!=0]").parent().parent().parent().parent().parent().siblings().addClass("highlighted")
这有效,但显然是错误的方式。什么是正确的方式?
答案 0 :(得分:4)
$("input[type='text'][value!=0], option:selected[value!=0]").
closest("table").show().siblings("legend").addClass("highlighted").
find("img").attr("src", minus_path);
是我的意思(如果愿意,可以分成多个语句)
答案 1 :(得分:0)
我认为这适用于has
选择器:
$( "#table_id:has(input[type='text'][value!=0])").show( );
答案 2 :(得分:0)
你知道什么会让生活更轻松吗?如果.parent()方法接受一个参数,你想要多少级别...你知道这样。
$( “输入[类型= '文本'] [价值!= 0]”)母体(4).show();