इस मामले में, मुझे लगता है कि कस्टम विशेषताओं overkill हो सकता है। आप उपयोगकर्ता-आईडी को आईडी-सामग्री में संग्रहीत कर सकते हैं, क्योंकि सूची में उपयोगकर्ता का केवल एक उदाहरण होगा, है ना? साथ ही, उपयोगकर्ता की स्थिति कक्षा-संग्रह में संग्रहीत की जा सकती है। इस तरह, प्रत्येक उपयोगकर्ता को सीएसएस में अलग स्टाइल दिया जा सकता है, जैसे सक्रिय के लिए हरा, एक गैर-सक्रिय खाते के लिए पीला, और एक निलंबित खाते के लिए लाल।
स्थिति को लाने के लिए कोड कस्टम विशेषता का उपयोग करने की तुलना में थोड़ा अधिक जटिल होगा (लेकिन केवल तभी यदि आप कई कक्षाएं चाहते हैं)। एक और सकारात्मक नोट पर, एचटीएमएल इस दृष्टिकोण के साथ मान्य होगा जबकि यह कस्टम विशेषताओं के साथ नहीं होगा।
<ul id="users">
<li id="someUserId" class="someStatus">Some Username</li>
<li id="someOtherUserId" class="someOtherStatus">Some Username</li>
</ul>
यह आप आसानी से की एक बहुत कुछ का चयन करने के लिए अनुमति देता है:
<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
कस्टम कार्य को प्रारंभिक मानते है, लेकिन XHTML संगत –
हाँ, पर नहीं कर रहे हैं जब यह करने के लिए नीचे आता है, जो अधिक वांछनीय है - जो है कुछ है कि काम करता है, और काफी तेज है, या कुछ और शिकायत? – Kazar
@activa और @Kazar मेटाडेटा प्लगइन के साथ अनुपालन और वांछनीय क्यों नहीं है? –