2012-12-03 40 views
45
document.getElementById("elementId").style.display="none" 

được sử dụng trong JavaScript để ẩn phần tử. Nhưng trong jQuery,JavaScript style.display = "none" hoặc jQuery .hide() hiệu quả hơn?

$("#elementId").hide(); 

được sử dụng cho cùng một mục đích. Cách nào hiệu quả hơn? Tôi đã thấy so sánh giữa hai hàm jQuery .hide().css("display","none")here.

Nhưng vấn đề của tôi là liệu JavaScript thuần túy có hiệu quả hơn jQuery không?

+0

Bản sao có thể có của [.hide() hoặc display: none? jQuery] (http://stackoverflow.com/questions/4396983/hide-or-display-none-jquery) –

Trả lời

82

Nói về hiệu quả:

document.getElementById('elemtId').style.display = 'none'; 

gì jQuery làm với .show().hide() phương pháp của nó là, mà nó nhớ trạng thái cuối cùng của một phần tử. Điều đó có thể có ích đôi khi, nhưng kể từ khi bạn hỏi về hiệu quả không quan trọng ở đây.

+1

Có điều này hiệu quả hơn nhưng điều này không an toàn. Trong công việc của tôi có một ứng dụng web HUGE khá nhiều cấu hình hoàn toàn, do đó, tùy thuộc vào ngữ cảnh và cấu hình một số mục có thể có hoặc không có trong trang. Nếu phần tử này không có trong trang, điều này S cause gây ra lỗi (sử dụng kiểu trên đối tượng không xác định). Với JQuery bạn sẽ không gặp vấn đề đó, hoặc nếu không bạn nên kiểm tra 'if (document.getElementById ('elemtId'))' trước khi thực hiện nó. – dominicbri7

+0

bất kỳ điểm chuẩn nào có thể ở đây? :) – rogerdpack

25

Hiệu quả sẽ không quan trọng đối với một cái gì đó như thế này trong 99,999999% tình huống. Làm bất cứ điều gì là dễ dàng hơn để đọc và duy trì.

Trong ứng dụng của mình, tôi thường dựa vào các lớp học để ẩn và hiển thị, ví dụ: .addClass('isHidden')/.removeClass('isHidden') cho phép tôi tạo hoạt ảnh với CSS3 nếu tôi muốn. Nó cung cấp sự linh hoạt hơn.

+2

Tôi sẽ không nói điều đó. Tùy thuộc vào số lượng cuộc gọi, điều này * có thể trở thành một yếu tố *, vì chúng ta đang gọi phương thức khởi tạo jQuery mỗi lần. – jAndy

+1

Nếu bạn đang thực hiện việc này> 10.000 lần trong một giây, điều đó có thể trở nên đáng chú ý. Tôi có thể chứng minh điều đó :) –

+6

http://jsperf.com/jquery-hide-vs-native33 - vui lòng quay lại .. – jAndy

22
a = 2; 

vs

a(2); 
function a(nb) { 
    lot; 
    of = cross; 
    browser(); 
    return handling(nb); 
} 

Trong ý kiến ​​ của bạn, những gì bạn nghĩ sẽ là nhanh nhất?

+2

Điều này khiến tôi cười và là câu trả lời hay nhất, tốt nhất. –

+0

Giải thích thú vị.lol – bot

+0

Không phải giải thích tốt nhất nhưng thông điệp của 'rất nhiều; of = cross; trình duyệt(); xử lý ... 'làm cho tôi không cho u downvote: P –

Các vấn đề liên quan