2014-09-23 101 views
0

我想隐藏td如果inputvalue0但我不能得到它的工作?隐藏​​与jQuery基于输入值

http://jsfiddle.net/zxpsd8x6/1/

<td><input type="radio" name="hideifvalue0" value"0"></td> 
<td><input type="radio" name="hideifvalue0" value"1"></td> 

<button class="btn1">Hide</button> 
<button class="btn2">Show</button> 
<script> 
$(document).ready(function(){ 
$(".btn1").click(function(){ 
$("td").hide(); 
}); 
$(".btn2").click(function(){ 
$("td").show(); 
}); 
}); 
</script> 
+7

这个网站是无效的。 Td应该是tabla的孩子,tr – 2014-09-23 14:05:34

+4

它应该是'value =“0”'not'value“0”'。你在寻找这个http://jsfiddle.net/j08691/zxpsd8x6/9/? – j08691 2014-09-23 14:07:28

+0

http://jsfiddle.net/zxpsd8x6/12/ – Nils 2014-09-23 14:10:40

回答

1

没有办法的办法,但这种修复的选择:

的jsfiddle:http://jsfiddle.net/swcmp2ws/

$(document).ready(function() { 
    $(".btn1").click(function() { 
     $('td:has(input[value="0"])').hide(); 
       //or 
     $('input[value="0"]').parent().hide(); 
    }); 
    $(".btn2").click(function() { 
     $('td:has(input[value="0"])').show(); 
       //or 
     $('input[value="0"]').parent().show(); 
    }); 
}); 

注:无效

  • 你的HTML - 添加tabletr元素
  • 你应该只使用共同的要素类简单的选择(例如class="hidethese")和$('.hidethese').hide()
+0

问题是如果输入值为零,如何隐藏TD,而不是如果它有一个特定的名称。你的代码实际上会错误地隐藏两个TD。 – evilunix 2014-09-23 14:23:46

+0

这仍然是错误的。它需要检查值=“0”而不是如果值=“hideifvalue0” – evilunix 2014-09-23 14:27:37

+0

这个问题措辞不佳,但我猜输入名称仅用于说明目的。 – evilunix 2014-09-23 14:28:30

0

你的HTML改为:

<td><input type="radio" name="hideifvalue0" value="0"></td> 
<td><input type="radio" name="hideifvalue0" value="1"></td> 

那么你的jQuery应该是:

我会建议
$(document).ready(function(){ 
    $(".btn1").click(function(){ 
    $("input[value='0']").parent().hide(); 
    }); 
    $(".btn2").click(function(){ 
    $("input[value='0']").parent().show(); 
    }); 
}); 
+0

如果还有一个输入类型=文本,该怎么办?那么这段代码也会影响这个输入。不是吗? – 2014-09-23 14:32:14

+0

是的 - 它会,但以HTML为例,它不应该是一个问题。我们只需要根据需要选择具体的选择器来解决手头的问题。 – evilunix 2014-09-23 14:32:55

0

首先你的html元素是错误的。 <td>应该是内部<table><tr> 像: <table> <tr> <td><input type="radio" name="hideifvalue0" value="0" /></td> <td><input type="radio" name="hideifvalue0" value="1" /></td> </tr> </table>

<button class="btn1">Hide</button> <button class="btn2">Show</button>

然后在这里jQuery代码老话:

$(".btn1").on('click', function() { $("input:radio[value='0']").parent().hide(); });

$(".btn2").on('click', function() { $("input:radio[value='0']").parent().show(); });

+0

没有必要迭代输入,检查值,当它可以被合并到实际的jQuery选择器。 – evilunix 2014-09-23 14:26:39

+0

请检查它,然后降级。我改变了它:) – 2014-09-23 14:30:17