2013-04-04 4 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

+0

Я пытаюсь скрыть флажки с диапазоном, содержащим (0). Вот почему я прошу о помощи. – Warface

+0

Код в скрипке, похоже, совсем не совпадает с кодом в вопросе. –

ответ

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/

Смежные вопросы