我有几个带有隐藏输入字段和值的表行和表。我需要做的是遍历所有隐藏的输入字段并找到一个特定的字段,其中class ='something'和value = something,然后转到该输入字段的<td>
并更改背景颜色。< / p>
$('input:hidden').each(function(){
if( $(this).find(".id_schedule_hours") && $(this).val() == 1) {
console.log('here')
}
}
答案 0 :(得分:6)
.each()
没有必要;您可以使用属性选择器.closest()
$("input:hidden[class='something'][value='something']")
.closest("td").css("backgroundColor", /* color */)
答案 1 :(得分:1)
添加要检查的唯一值 - 您可以使用数据属性并设置所需的值以在数据变量中进行检查。然后在函数中 - 获取数据属性值(与输入类无关)并比较该期望值的值:
//HTML
<input type="hidden" class="id_schedule_hours" data-desiredvalue="1" name="id_schedule_hours" value="" />
<input type="hidden" class="id_trucks" data-desiredvalue="2" name="id_trucks" value="" />
//js
$('.id_schedule_hours,id_trucks').each(function(){
var desiredValue=$(this).attr('data-desiredvalue');
if( $(this).val() == desiredValue) {
console.log('here');
$(this).parent().css('background-color','red');
}
});
答案 2 :(得分:0)
使用该类作为选择器并使用.parent()上升链并更改父级:
$('input[type=hidden].id_schedule_hours').each(function(){
if( $(this).val() == 1) {
console.log('here');
$(this).parent().css('background-color','red');
}
});
还建议更改您的选择器名称 - 有一个名为.id _...
的类似乎是错误的此外 - 如果该类的唯一输入是您感兴趣的隐藏类,那么您可以直接在选择器中定位它们,例如:
$('.id_schedule_hours').each(function(){
答案 3 :(得分:0)
您可以利用jQuery:hidden选择器。它不是官方CSS选择器的一部分,而是jQuery选择器。
$('input.id_schedule_hours:hidden').each(function(){
if( $(this).val() == 1) {
console.log('here')
}
}
具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍然占用布局中的空间。在隐藏元素的动画期间,该元素在动画结束前被视为可见。
不认为文档中没有的元素是可见的; jQuery没有办法知道它们在附加到文档时是否可见,因为它取决于适用的样式。
此选择器与:visible选择器相反。因此,通过以下方式选择的每个元素:隐藏不被选中:可见,反之亦然。
在显示元素的动画期间,该元素在动画开始时被视为可见。
如何:确定隐藏在jQuery 1.3.2中已更改。如果元素或其任何父元素在文档中不占用空间,则假定元素被隐藏。不考虑CSS可见性(因此$(elem).css(&#34; visibility&#34;,&#34; hidden&#34;)。is(&#34;:hidden&#34;) == false)。发行说明更详细地概述了这些变化。
jQuery 3略微修改了隐藏的含义(因此:可见)。从这个版本开始,将考虑元素:如果他们没有任何布局框,则隐藏元素。例如,:隐藏选择器不会选择没有内容的br元素和内联元素。