Trong trường hợp này, tôi nghĩ rằng thuộc tính tùy chỉnh có thể là quá mức cần thiết. Bạn có thể lưu trữ id người dùng trong thuộc tính id vì sẽ chỉ có một phiên bản của người dùng trong danh sách, đúng không? Ngoài ra, trạng thái của người dùng có thể được lưu trữ trong thuộc tính lớp. Bằng cách này, mỗi người dùng có thể được cung cấp kiểu dáng khác nhau trong CSS, chẳng hạn như màu xanh lá cây cho hoạt động, màu vàng cho tài khoản không kích hoạt và màu đỏ cho tài khoản bị tạm ngưng.
Mã để tìm nạp trạng thái sẽ phức tạp hơn một chút so với sử dụng thuộc tính tùy chỉnh (Nhưng chỉ khi bạn cũng muốn có nhiều lớp). Trên một lưu ý tích cực hơn, HTML sẽ xác nhận hợp lệ với phương pháp này trong khi nó sẽ không có thuộc tính tùy chỉnh.
<ul id="userList">
<li id="uid123" class="active">UserName X</li>
<li id="uid456" class="suspended">Mr. Troll</li>
</ul>
/**
* Simple function for searching (strict) for a value in an array
* @param array arr The array to look in
* @param mixed val The value to look for in arr. Note that the value is looked for using strict comparison
* @return boolean true if val is found in arr, else false
*/
function searchArray(arr, val) {
for(var i = 0, len = arr.length; i < len; i++) {
if(arr[i] === val) {
return true;
}
}
return false;
}
/**
* Gets a known status from a string of class names. Each class name should be separated
* by a space.
* @param string classNames The string to check for a known status
* @return string|false The status if found in classNames, else false
*/
function getStatus(classNames) {
// The different statuses a user can have. Change this into your own!
var statuses = ['active', 'suspended', 'inactive'],
nameArr = classNames.split(" ");
for(var i = 0, nameLen = nameArr.length; i < nameLen; i++) {
// If we find a valid status among the class names, return it
if(searchArray(statuses, nameArr[i])) {
return nameArr[i];
}
}
return false; // We didn't find any known status in classNames
}
var id = $("li").attr("id"); // Fetches the id for the first user
var status = getStatus($("li").attr("class")); // Fetches the status of the first user
Tuỳ chỉnh các thuộc tính làm việc, nhưng không tương thích với XHTML –
Có, nhưng khi nó đi xuống đến nó, mà là mong muốn hơn - một cái gì đó mà làm việc, và khá nhanh chóng, hoặc cái gì đó là tuân thủ? – Kazar
@activa và @Kazar Tại sao không tuân thủ và mong muốn với plugin siêu dữ liệu? –