2010-10-05 38 views
14

Vâng, tôi có trình chiếu hình ảnh jQuery này sử dụng thuộc tính "điều khiển" bên trong một <a>. Thấy cách nó không hợp lệ tôi đã tìm kiếm một cách để thêm thuộc tính này vào trong HMTL của tôi thông qua jQuery nhưng tôi không thực sự tìm thấy bất cứ điều gì có liên quan. Bây giờ tôi không thực sự quan tâm về việc trang của tôi hợp lệ như thế nào, nhưng tôi thực sự tò mò về cách thêm một thuộc tính HTML bên trong một thẻ HTML.Cách thêm thuộc tính HTML với jQuery

Trong trường hợp tôi đã không đủ rõ ràng với lời giải thích của tôi, tôi có mã này:

<a id="previous" control="-6" href="#"></a> 

Và tôi muốn thêm kiểm soát = "- 6" với jQuery.

Trả lời

13

Kể từ khi phiên bản jQuery đã cũng đề cập ở đây, tôi nghĩ rằng tôi muốn cung cấp một cái gì đó khác nhau, vì vậy đây tùy chọn DOM API gốc:

document.getElementById('previous').setAttribute('control','-6'); 

Vâng, tôi biết bạn đã yêu cầu jQuery. Không bao giờ đau để biết cách bản địa quá. : o)

25

attr chức năng Sử dụng jQuery

$("#previous").attr("control", "-6"); 

Một ví dụ

// Try to retrieve the control attribute 
// returns undefined because the attribute doesn't exists 
$("#previous").attr("control"); 

// Set the control attribute 
$("#previous").attr("control", "-6"); 

// Retrieve the control attribute (-6) 
$("#previous").attr("control"); 

Xem này example on jsFiddle


Hoặc bạn có thể sử dụng chức năng để data giá trị lưu trữ trên các yếu tố. Các công việc cùng một cách, ví dụ:

$("#previous").data("control"); // undefined 
$("#previous").data("control", "-6"); // set the element data 
$("#previous").data("control"); // retrieve -6 

Sử dụng data bạn có thể lưu trữ các giá trị phức tạp hơn như đối tượng

$("#previos").data("control", { value: -6 }); 
($("#previos").data("control")).value; // -6 

Xem data example on jsFiddle

+1

Câu trả lời đúng. Tuy nhiên, tôi chống lại việc sử dụng dữ liệu(), tôi không nghĩ rằng các nút html là nơi thích hợp để lưu trữ dữ liệu, đó là trộn V và M. Tôi luôn tạo một đối tượng mô hình được sử dụng để duy trì bất kỳ dữ liệu phổ biến nào trên màn hình. Tuy nhiên, nó hữu ích cho các ứng dụng nhỏ và cải tiến trang ánh sáng –

1

Hãy thử điều này:

$('#previous').attr('control', '-6'); 

Tại sao ? chức năng $.attr(); của jQuery cho phép bạn thêm, nhận hoặc cập nhật các thuộc tính (lớp, id, href, liên kết, src, kiểm soát và mọi thứ khác!).

1
$("#previous").attr("control", "-6"); 
1

HTML:

<a id="previous" href="#">...</a> 

jQuery:

$('#previous').attr('control', '-6'); 
2

Hãy để tôi xem tôi có hiểu bạn không. Bạn đã, ví dụ, mã:

<a id="previous" href="#"></a> 

Và bởi jQuery bạn muốn nó được:

<a id="previous" control="-6" href="#"></a> 

Có phải không? Nếu có. Bạn chỉ cần làm:

$('#previous').attr('control', -6); 

Nếu thuộc tính không tồn tại, nó được tạo bởi jQuery. Vì vậy, để loại bỏ nó, bạn có thể làm:

$('#previous').removeAttr('control'); 

gì bạn đang làm không tôn trọng các quy tắc html và mọi thứ khác, nhưng nó hoạt động tốt, rất nhiều plugin làm như vậy. ; D

Tôi hy vọng điều này có thể hữu ích!

Hẹn gặp bạn!

+0

bạn có thể đưa ra ví dụ về quy tắc không được tôn trọng không? – Lucas

+1

Quy tắc HTML cho chữ cái không chấp nhận thuộc tính thẻ tùy chỉnh. Thử sử dụng Trình xác thực W3C http://validator.w3.org/. Không có gì phải lo lắng, chúng chỉ hoạt động tốt. Vấn đề là thuộc tính tùy chỉnh của bạn có thể xung đột với các thuộc tính tùy chỉnh của plugin hoặc thậm chí với một số thuộc tính mới. –

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