我试图通过在每一行中运行jQuery函数来隐藏表中的元素,检查行的类并基于此隐藏。我似乎遇到的问题是该函数将检查第一行的类,并在所有其他检查基础上隐藏,如果第一次检查是真或假。下面是函数和表单的一部分
表格
<select id="select" onchange="eligibility_changed(this);" class="fieldsel">
<option value="Select One:">Select One:</option>
<option value=".ineligible">Ineligible</option>
<option value=".eligible">Eligible</option>
<option value=".confirmed">Eligible</option>
</select>
功能
function eligibility_changed($this) {
jQuery(".fieldsel").each(function() {
var col = this.id;
var val = this.value;
console.log(val);
if (val != "Select One:") {
jQuery("#tbl>tbody>tr").each(function() {
//Ran to check the row's class.
console.log(jQuery('#eligfld').attr('class'));
if (!jQuery( "#eligfld" ).is(val)) {
jQuery(this).hide();
}
});
}
});
};
答案 0 :(得分:1)
假设行具有您在选项中显示的类,您不需要循环所有行只是隐藏该类
if (val != "Select One:") {
// show all, filter for class and hide that class
jQuery("#tbl>tbody>tr").show().filter(val).hide();
}
这是ID独立的,因此除非您有多个具有相同ID的表
,否则重复ID不应成为问题