我使用“数据”属性并在IE7中,我不知道如何获得它的价值。 jQuery可以帮助我吗?
我有这个
window.event.srcElement.getAttribute('data-pk')
当然它不起作用。
for (i=0; i < max; i++) {
if (typeof attachEvent == 'undefined'){
//open[i].addEventListener('click', function(e){ openSlide(e.currentTarget.getAttribute('data-pk')), false});
open[i].onclick = function(e){ openSlide(e.currentTarget.getAttribute('data-pk')), false};
} else {
open[i].attachEvent('onclick', function(){
openSlide(window.event.srcElement.getAttribute('data-pk'))}, false);
};
};
HTML
<div>
<img class='image' data-pk='18' src='/site_media/media/img/120x180.jpg'>
<img class='image' data-pk='13' src='/site_media/media/img/007b-300x224.jpg'>
<img class='image' data-pk='15' src='/site_media/media/img/IMG_0549_1.jpg'>
</div>
答案 0 :(得分:12)
jQuery可以帮助...数据属性与jQuery中的data()函数一起使用。
$(srcElement).data('pk');
您可以将它与任何数据属性一起使用,例如,如果您有:
<div id="DivId" data-something="foo" data-somethingElse="bar">
您可以通过以下方式获取数据:
$('#DivId').data('something');
$('#DivId').data('somethingElse');
设置数据:
$('#DivId').data('something', 'foo');
$('#DivId').data('somethingElse', 'bar');
的链接
修改强>
我想你想要:
$('.image').click(function () {
openSlide($(this).data('pk'), false);
});
答案 1 :(得分:1)
最佳答案已过时。给定示例<div id="DivId" data-somethingElse="bar"></div>
,您必须执行$('#DivId').data('somethingelse')
才能获取数据。更好的标准方法是在HTML中使用snake case,这将在JavaScript中产生camelcase:
HTML:
<div id="foo" data-something-else="bar"></div>
JS:
alert($('#foo').data('somethingElse')); // Alerts "bar"
答案 2 :(得分:0)
在jQuery中,您可以使用数据方法,如下所示:
$(srcElement).data('pk');
请注意,传入数据的字符串只是'pk',您只需删除属性的'data-'部分。
答案 3 :(得分:0)
您可以使用jQuerys(或其他库)attr getter。或者您可以查看jQuery source并了解它们如何实现跨浏览器的一致性。