如何在 jQuery 中单击时找到 data-* 属性值?

Posted

技术标签:

【中文标题】如何在 jQuery 中单击时找到 data-* 属性值?【英文标题】:How do I find data-* attribute value on click in jQuery? 【发布时间】:2013-06-05 19:55:54 【问题描述】:

当用户单击缩略图时,我正在尝试检索包含图像 url 的数据值。 html如下:

<div class="port_image_holder">
<a class="port_enlarge" href="javascript:void(0)">
    <img class="lazy" src="html_includes/include_images/image_loading.jpg"
        data-original="html_includes/include_images/test-image.png"
        data-large="html_includes/include_images/test-image-large.png"
         />
    <noscript>
        <img src="html_includes/include_images/test-image.png"
             data-large="html_includes/include_images/test-image-large.png"
              />
   </noscript>
</a>
</div>

基本上当用户点击图片时我需要获取data-large属性中设置的url。

目前我可以使用find()方法从src获取url:

var img_url=$(this).find('img').attr('src');

但到目前为止还没有获得数据参考。请注意,页面上有许多 port_image_holder 类,因为它们会根据需要循环播放。

【问题讨论】:

不是这个:var img_url=$(this).find('img').attr('data-large'); ? 哈哈 - 有时答案很明显 - 谢谢 :) 或者使用 $(this).find('img').data('large') 怎么样? 谢谢@halib - 试过了,但由于某种原因没有奏效 - 再试一次,它成功了!也许我在最初的尝试中有错字。 【参考方案1】:

您可以使用.data() 方法在图像上找到data-large 属性,例如:

var img_url = $(this).find('img').data('large');

// Check the console for url
console.log(img_url);

【讨论】:

以上是关于如何在 jQuery 中单击时找到 data-* 属性值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在按钮单击时启用和禁用 jquery dataTables 的分页

使用 jQuery 单击按钮时,如何暂停 YouTube 视频?

单击时jquery未返回正确的值

如何使 jQuery 单击事件恢复到原本的状态?

如果使用 jquery 单击按钮,如何激活弹出模式?

如何在单击多个项目时使用 jQuery 循环遍历数组?