jquery查找具有特定类名的所有隐藏输入字段

时间:2016-07-30 22:47:28

标签: javascript jquery html

我有几个带有隐藏输入字段和值的表行和表。我需要做的是遍历所有隐藏的输入字段并找到一个特定的字段,其中class ='something'和value = something,然后转到该输入字段的<td>并更改背景颜色。< / p>

 $('input:hidden').each(function(){
    if( $(this).find(".id_schedule_hours") && $(this).val() == 1) {
        console.log('here')
    }
}

4 个答案:

答案 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元素和内联元素。

请参阅:jQuery :hidden documentation