2011-01-21 63 views
16

Làm cách nào để xóa DIV bằng một giá trị cụ thể?Xóa thẻ DIV bằng cách sử dụng Javascript hoặc Jquery

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

tôi muốn loại bỏ các div trên đó có giá trị 0.

+4

Bạn có sử dụng một thư viện javascript? JQuery có phải là câu trả lời chấp nhận được không? Nếu vậy, bạn có thể làm điều này nếu jQuery: $ ('[value = "0"]'). Remove(); Giá trị –

+3

không phải là thuộc tính hợp lệ của thẻ div. –

Trả lời

45

Như Ben Rowe chỉ ra trong các ý kiến, value không phải là một thuộc tính hợp lệ của thẻ div. Và cả giải pháp jQuery và giải pháp sử dụng getElementsByTagName() phải lặp qua danh sách, điều này không tốt cho hiệu suất. Tôi nghĩ rằng việc tạo một thuộc tính id thay vào đó là một lựa chọn tốt hơn:

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

Và sau đó bạn chỉ có thể làm:

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

Hãy thực tế ở đây. Không cần jQuery để làm một cái gì đó đơn giản như thế này. –

+6

Hãy thực tế hơn ở đây. Tấn người sử dụng jQuery, vì vậy nếu họ đã sử dụng nó, tại sao họ sẽ không đi cho một dòng mã đơn giản. [1 cho câu trả lời này mặc dù vì tôi xảy ra không được sử dụng jQuery tại thời điểm này] – bergie3000

+0

jQuery ăn tài nguyên máy tính và treo trình duyệt khi mở trên một số tab, vì vậy xin vui lòng không sử dụng nó! – 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

này là mã jquery)):

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

Edit: Nevermind - Zhasulan đánh tôi để nó . : P

Với jQuery -

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

Thay thế cho jQuery/JavaScript bạn có thể đạt được điều đó thông qua chỉ CSS -

JSFIDDLE

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

Hoặc qua jQuery selector sử dụng thuộc tính:

JSFIDDLE

$("div[value='0']").hide(); /*.remove() as per your requirement*/ 
Các vấn đề liên quan