数据attr在DOM中更新但无法在jQuery中调用它

时间:2014-03-22 21:38:15

标签: jquery zurb-foundation

我正在使用Codrops的THUMBNAIL GRID WITH EXPANDING PREVIEW,并尝试向扩展的视图链接添加其他数据属性。我已经成功地将该属性添加到click元素并更改了jQuery以将数据属性注入到每个新访问的网站'链接。当我单击每张图片时,下拉列表会相应地填充。我可以获取我的数据属性(称为data-reveal-id)并返回正确的数据。然而,当我切换到一个新元素时,数据属性在DOM中更新,但是当我通过jQuery获取它时,我得到了旧属性。以下是一个例子:

第一次点击

html:
<a href="#" class="redeem-btn" data-reveal="" data-id="1" data-reveal-id="emailModal">Redeem this Package</a>

jquery: $('a.redeem-btn')
return: <a href="#" class="redeem-btn" data-reveal="" data-id="1" data-reveal-id="emailModal">Redeem this Package</a>

jquery: $('a.redeem-btn').data('revealId')
return: "emailModal"
到目前为止,这么好。一切看起来都应该如此。

第二次点击

(打开一个新的下拉列表):

html:
<a href="#" class="redeem-btn" data-reveal="" data-id="3" data-reveal-id="printModal">Redeem this Package</a>

jquery: $('a.redeem-btn')
return: <a href="#" class="redeem-btn" data-reveal="" data-id="3" data-reveal-id="printModal">Redeem this Package</a>

jquery: $('a.redeem-btn').data('revealId')
return: "emailModal"

当我返回整个<a>元素时,我会看到data-reveal-id的正确"printModal"值。但是,当我尝试仅抓取数据时,它会返回旧值"emailModal"

任何人都可以帮忙解释一下吗?如何获得正确的数据值?

1 个答案:

答案 0 :(得分:1)

data()在内部存储数据,并在数据存在时获取数据,否则获取数据属性的值。

您正在寻找的是数据属性,并且您已经将数据设置到内部存储,但仍希望获取属性的值,并且您将这样做

$('a.redeem-btn').attr('data-revealId')