2011-01-21 16 views
16

Jak usunąć DIV o określonej wartości?Usuń znacznik DIV za pomocą kodu JavaScript lub Jquery

<div value="0" class="task_row"></div> 

Chcę usunąć powyższy div, który ma wartość 0.

+4

Używasz javascript biblioteki? Czy jQuery będzie akceptowalną odpowiedzią? Jeśli tak, możesz to zrobić, jeśli jQuery: $ ('[value = "0"]'). Remove(); Wartość –

+3

nie jest poprawnym atrybutem znacznika div. –

Odpowiedz

45

Jako Ben Rowe zwraca uwagę w komentarzach, value nie jest ważny atrybut znacznika div. I zarówno rozwiązanie jQuery, jak i rozwiązanie, które używa getElementsByTagName(), musi powtarzać listę, która jest zła pod względem wydajności. Myślę, że tworzenie atrybut id zamiast jest lepszym rozwiązaniem:

<div id="task_row_0" class="task_row"></div> 

I wtedy można po prostu zrobić:

var div = document.getElementById("task_row_" + taskId); 
div.parentNode.removeChild(div); 
+2

Bądźmy realistami. Nie ma potrzeby, aby jQuery robił coś prostego, takiego jak ten. –

+6

Bądźmy jeszcze bardziej realistyczni. Mnóstwo ludzi używa jQuery, więc jeśli już go używają, dlaczego nie mieliby pójść na prostą pojedynczą linię kodu. [+1 za tę odpowiedź, chociaż zdarza się, że nie używam jQuery w tej chwili] – bergie3000

+0

jQuery zjada zasoby komputerowe i zawiesza przeglądarki po otwarciu na kilku kartach, więc proszę, nie używaj go! – TomeeNS

3
var divs = document.getElementsByTagName('div'); 
for(var i = divs.length; i; i -= 1) { 
    if (divs[i].getAttribute('value') == 0) { 
     divs[i].parentNode.removeChild(divs[i]); 
    } 
} 
4

to kod jquery)):

$('div').each(function(){ 
    if($(this).attr('value') == '0'){ 
    $(this).remove(); 
    } 
}); 
2

Edycja: Nevermind - Zhasulan mnie uprzedził . : P

z jQuery -

$('div').each(function(){ 
    if($(this).attr('value') == '0') { 
     $(this).hide(); 
     } 
    }); 
0

Alternatywa dla jQuery/JavaScript można to osiągnąć za pomocą tylko CSS -

JSFIDDLE

div[value="0"] { 
    display: none; 
} 

Albo poprzez selektor jQuery za pomocą atrybutu:

JSFIDDLE

$("div[value='0']").hide(); /*.remove() as per your requirement*/ 
Powiązane problemy