2013-04-04 158 views
0

HTML隱藏父元素 「(0)」

<div>Group 1 
    <br> 

     <input type="checkbox" name="testing" value="B"> <label>A<span>(34)</span></label> 
    <br /> 
     <input type="checkbox" name="testing" value="I"> <label>B<span>(0)</span></label> 
    <br /> 
     <input type="checkbox" name="testing" value="A"> <label>C<span>(323)</span></label> 
    <br /> 
</div> 
<div>Group 2 
    <br> 

     <input type="checkbox" name="testing2" value="B"><label>A<span>(0)</span></label> 
    <br /> 

     <input type="checkbox" name="testing2" value="I"><label>B<span>(564)</span></label> 
    <br /> 

     <input type="checkbox" name="testing2" value="A"> <label>C<span>(0)</span></label> 
    <br /> 
</div> 

JS

$("input:checkbox").change(function() { 
    var checkname = $(this).attr("name"); 

    if (this.checked) { 

     $("input:checkbox[name='" + checkname + "']").removeAttr("checked").parent().hide(); 
     this.checked = true; 
     $(this).parent().show(); 
    } else { 
     $("input:checkbox[name='" + checkname + "']").parent().show(); 
    } 

    if($(".options input:checkbox + label span:contains('(0)')")){ 
     $(this).parent().hide();; 
    }else{ 
     $(this).parent().show(); 
    } 
}); 


$("input:checkbox[checked]").trigger("change"); 

我想隱藏其標籤的複選框,如果孩子跨度包含( 0)。你可以看到我上面試過的東西,但它不起作用。怎麼做 ?

http://jsfiddle.net/warface/uvYzW/4/

+0

你試圖做什麼,刪除屬性,將它們設置在下一行,幾乎同時隱藏和顯示相同的元素? – adeneo 2013-04-04 19:30:23

+0

我試圖隱藏包含(0)的跨度複選框。這就是我尋求幫助的原因。 – Warface 2013-04-04 19:31:41

+0

小提琴中的代碼似乎完全不符合問題中的代碼。 – 2013-04-04 19:33:24

回答

1

標記:

<div>Group 1 
    <div> 
     <input type="checkbox" name="testing" value="B"> <label>A<span>(34)</span></label> 
    </div> 
    <div> 
     <input type="checkbox" name="testing" value="I"> <label>B<span>(0)</span></label> 
    </div> 
</div> 

JS:

$("label span:contains('(0)')").closest("div").hide(); 
0

試試這個:

$.each($("input[type=checkbox]") , function(key, value) { 
    var element = $(value); 
    if (element.next().find("span").text()==="(0)") {    
     element.prev().hide(); // remove the <br> 
     element.hide(); 
     element.next().hide(); // remove the label 
    } 
}); 

http://jsfiddle.net/Hgg58/2/