2014-09-23 105 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