শূন্য বা ততোধিক data-*
গুণাবলী সহ একটি স্বেচ্ছাসেবী এইচটিএমএল উপাদান দেওয়া হয়েছে, কীভাবে ডেটার জন্য কী-কী জোড়গুলির তালিকা পেতে পারে।
যেমন এটি দেওয়া:
<div id='prod' data-id='10' data-cat='toy' data-cid='42'>blah</div>
আমি প্রোগ্রাম থেকে এটিকে পুনরুদ্ধার করতে সক্ষম হতে চাই:
{ "id":10, "cat":"toy", "cid":42 }
JQuery (v1.4.3) ব্যবহার করে $.data()
, কীগুলি আগাম পরিচিত হয় তা ব্যবহার করে পৃথক উপাত্তের ডেটা অ্যাক্সেস করা সহজ তবে তথ্যগুলির স্বেচ্ছাসেবী সেটগুলির সাহায্যে কেউ কীভাবে এটি করতে পারে তা স্পষ্ট নয়।
আমি যদি একটি উপস্থিত থাকে তবে একটি 'সরল' jQuery সমাধান সন্ধান করছি, তবে অন্যথায় নিম্ন স্তরের পদ্ধতির বিষয়টি মনে করবে না। আমি পার্স করার চেষ্টা করতে গিয়েছিলাম $('#prod').attributes
তবে জাভাস্ক্রিপ্ট-ফু এর অভাব আমাকে হতাশ করে দিচ্ছে।
হালনাগাদ
কাস্টমটাটা আমার যা প্রয়োজন তা করে। তবে, এর কার্যকারিতাটির একাংশের জন্য একটি জিকুয়েরি প্লাগইন সহ একটি ওভারকিলের মতো মনে হয়েছিল।
সোর্স আইবোলিং আমাকে নিজের কোড ঠিক করতে সহায়তা করেছে (এবং আমার জাভাস্ক্রিপ্ট-ফু উন্নত করেছে)।
সমাধানটি আমি এখানে নিয়ে এসেছি:
function getDataAttributes(node) {
var d = {},
re_dataAttr = /^data\-(.+)$/;
$.each(node.get(0).attributes, function(index, attr) {
if (re_dataAttr.test(attr.nodeName)) {
var key = attr.nodeName.match(re_dataAttr)[1];
d[key] = attr.nodeValue;
}
});
return d;
}
আপডেট 2
গৃহীত উত্তরে প্রদর্শিত হিসাবে, সমাধানটি jQuery (> = 1.4.4) এর সাথে তুচ্ছ। $('#prod').data()
প্রয়োজনীয় ডেটা ডিক ফিরিয়ে দেবে।