এটি ডকুমেন্টেশনে উল্লেখ করা হয়েছে.data()
ডেটা-বৈশিষ্ট্যগুলি প্রথমবারে ডেটা সম্পত্তি অ্যাক্সেস করার পরে টানা হয় এবং তারপরে আর অ্যাক্সেস বা রূপান্তরিত করা হয় না (সমস্ত ডেটা মানগুলি পরে jQuery এ অভ্যন্তরীণভাবে সংরক্ষণ করা হয়)
এটিও অন্তর্ভুক্ত ছিল বিষয়টিতে কেন jQuery f .fn.data () এ সম্পর্কিত html 5 ডেটা- * বৈশিষ্ট্যগুলি আপডেট করবেন না?
নীচে আমার মূল উত্তরের ডেমোটি আর কাজ করবে বলে মনে হচ্ছে না।
আপডেট উত্তর
আবার, ডকুমেন্টেশন থেকে.data()
এম্বেড থাকা ড্যাশ সহ বৈশিষ্ট্যগুলির চিকিত্সা ডাব্লু 3 সি এইচটিএমএল 5 নির্দিষ্টকরণের সাথে সঙ্গতি রাখতে jQuery 1.6 এ পরিবর্তন করা হয়েছিল।
অনেক দূরে <div data-role="page"></div>
নিম্নলিখিত জন্য সত্য$('div').data('role') === 'page'
আমি মোটামুটি নিশ্চিত যে $('div').data('data-role')
অতীতে কাজ করেছে তবে এটি আর হবে বলে মনে হয় না। আমি একটি ভাল শোকেস তৈরি করেছি যা কনসোল খোলার চেয়ে এইচটিএমএলে লগ হয় এবং মাল্ট-হাইফেনের একটি অতিরিক্ত উদাহরণটি উটকেস ডেটা- বৈশিষ্ট্য রূপান্তরতে যুক্ত করেছে।
আপডেট হওয়া ডেমো (2015-07-25)
এছাড়াও jQuery ডেটা বনাম অ্যাটর দেখুন?
এইচটিএমএল
<div id="changeMe" data-key="luke" data-another-key="vader"></div>
<a href="#" id="changeData"></a>
<table id="log">
<tr><th>Setter</th><th>Getter</th><th>Result of calling getter</th><th>Notes</th></tr>
</table>
জাভাস্ক্রিপ্ট (jQuery 1.6.2+)
var $changeMe = $('#changeMe');
var $log = $('#log');
var logger;
(logger = function(setter, getter, note) {
note = note || '';
eval('$changeMe' + setter);
var result = eval('$changeMe' + getter);
$log.append('<tr><td><code>' + setter + '</code></td><td><code>' + getter + '</code></td><td>' + result + '</td><td>' + note + '</td></tr>');
})('', ".data('key')", "Initial value");
$('#changeData').click(function() {
// set data-key to new value
logger(".data('key', 'leia')", ".data('key')", "expect leia on jQuery node object but DOM stays as luke");
// try and set data-key via .attr and get via some methods
logger(".attr('data-key', 'yoda')", ".data('key')", "expect leia (still) on jQuery object but DOM now yoda");
logger("", ".attr('key')", "expect undefined (no attr <code>key</code>)");
logger("", ".attr('data-key')", "expect yoda in DOM and on jQuery object");
// bonus points
logger('', ".data('data-key')", "expect undefined (cannot get via this method)");
logger(".data('anotherKey')", ".data('anotherKey')", "jQuery 1.6+ get multi hyphen <code>data-another-key</code>");
logger(".data('another-key')", ".data('another-key')", "jQuery < 1.6 get multi hyphen <code>data-another-key</code> (also supported in jQuery 1.6+)");
return false;
});
$('#changeData').click();
পুরানো ডেমো
আসল উত্তর
এই এইচটিএমএলের জন্য:
<div id="foo" data-helptext="bar"></div>
<a href="#" id="changeData">change data value</a>
এবং এই জাভাস্ক্রিপ্ট (jQuery 1.6.2 সহ)
console.log($('#foo').data('helptext'));
$('#changeData').click(function() {
$('#foo').data('helptext', 'Testing 123');
// $('#foo').attr('data-helptext', 'Testing 123');
console.log($('#foo').data('data-helptext'));
return false;
});
ডেমো দেখুন
ডিওএম পরিদর্শন করার জন্য ক্রোম ডেভটুলস কনসোল ব্যবহার করে , কনসোলে দেখা মানটি আপডেট $('#foo').data('helptext', 'Testing 123');
করে না তবে তা করে।$('#foo').attr('data-helptext', 'Testing 123');