Javascript jQuery$.data(';n';)返回空白,但$.attr(';data-n';)获取值

Javascript jQuery$.data(';n';)返回空白,但$.attr(';data-n';)获取值,javascript,jquery,html,Javascript,Jquery,Html,第三方javascript库向与工具提示功能相关的元素添加了数据属性,如下所示: <i id="button1" data-tooltip="xyz-tooltip"></i> 但是在我的例子中,工具提示是“”。但是,我可以通过以下方式获得: var theTooltip = $("#button1").attr("data-tooltip"); 在什么情况下第一种方法不起作用?这可能是因为在初始化jQuery时元素没有这些属性(它们没有在服务器上呈现)?答案是,$.

第三方javascript库向与工具提示功能相关的元素添加了数据属性,如下所示:

<i id="button1" data-tooltip="xyz-tooltip"></i>
但是在我的例子中,
工具提示是
”。但是,我可以通过以下方式获得:

var theTooltip = $("#button1").attr("data-tooltip");

在什么情况下第一种方法不起作用?这可能是因为在初始化jQuery时元素没有这些属性(它们没有在服务器上呈现)?

答案是,
$.data()
之前已经写入,但随后可见数据属性被写入其他内容。可见数据属性不再由
$.data()检索。


jsiddle:

答案是,
$.data()
之前已经写入,但是visible data属性会写入其他内容。可见数据属性不再由
$.data()检索。


JSIDLE:

无法复制:。这两个例子都很好。请编辑该问题以重现该问题。@RoryMcCrossan如果您没有按说明进行复制,则数据属性是由第三方JavaScript库动态添加的。我指定它不在原始呈现文档中。仍然有效:那么看看插件,看看他们是如何添加它的。这些都与您显示的代码一起工作,因此我们无法复制问题:。这里的要点是,如果它对你不起作用,那么你的问题就没有涉及到一些潜在的原因。我想说的是,实际上没有一个原因——假设你在正确的时间打电话。此外,这个问题并不“完全清楚”,因为您没有说明使用的是哪一个第三方工具提示库。这也是为什么我要求您为问题中的问题创建一个工作示例。无法复制:。这两个例子都很好。请编辑该问题以重现该问题。@RoryMcCrossan如果您没有按说明进行复制,则数据属性是由第三方JavaScript库动态添加的。我指定它不在原始呈现文档中。仍然有效:那么看看插件,看看他们是如何添加它的。这些都与您显示的代码一起工作,因此我们无法复制问题:。这里的要点是,如果它对你不起作用,那么你的问题就没有涉及到一些潜在的原因。我想说的是,实际上没有一个原因——假设你在正确的时间打电话。此外,这个问题并不“完全清楚”,因为您没有说明使用的是哪一个第三方工具提示库。这也是为什么我要求你们为问题中的问题创建一个工作示例。这是有道理的。很高兴你查到了真相。不过,祖尔布这么做真是太奇怪了。@Rorymcrossan,谢谢。如果你的评论促使我证明这是可能发生的话!:)是的,我不知道他们为什么要这么做。糟糕的代码,这很有道理。很高兴你查到了真相。不过,祖尔布这么做真是太奇怪了。@Rorymcrossan,谢谢。如果你的评论促使我证明这是可能发生的话!:)是的,我不知道他们为什么要这么做。错误代码。
var theTooltip = $("#button1").attr("data-tooltip");