无法使用jquery获取元素的属性

时间:2012-12-12 14:40:02

标签: javascript jquery

我有这个HTML:

<img src="http://localhost:82/Clone//images/hosts/Kinx_9843a.jpg" data-name="/images/hosts/K_9843a.jpg" alt="">

我想要得到这个:

$('body').on('click','.hostPic',function(){ 
    console.log($(this).attr('data-name'));
});

每当按下图片时,我想获取其数据名称属性,但它不起作用..当我尝试检索属性时,我会报告undefined。有什么理由吗?

4 个答案:

答案 0 :(得分:4)

hostPic类添加到该图像。

此外,您可以使用.data('name'),但实际上并没有什么区别。较旧的浏览器可能会遇到.data的问题,但这对我来说从来都不是问题。

答案 1 :(得分:1)

$('.hostPic').click(function() {
  console.log($(this).data('name'));
}

答案 2 :(得分:0)

确保您的图片具有“hostPic”类,然后在jQuery中执行以下操作: -

$('.hostPic').on('click', function() {
  console.log($(this).data('name'));
}

答案 3 :(得分:0)

以下代码对我有用,也许您正在附加事件错误对象,您可以通过调试this对象而不是data-name来理解它。

另一件事是,如果您要将.data仅用于读取字符串,则应使用.attr作为.data缓存,并尝试将值转换为number之类的适当类型1}}或JSON这是一个比.attr更重的过程。

<img src="http://localhost:82/Clone//images/hosts/Kinx_9843a.jpg" data-name="/images/hosts/K_9843a.jpg" alt="">​

​$("img")​.click(function () { alert($(this).attr("data-name")); });​