Javascript 使用Jquery的.最近访问音频元素不工作?

Javascript 使用Jquery的.最近访问音频元素不工作?,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我使用了.each和before在“product_name”类的每个元素之前自动插入一个类为“pipe1”的音频元素,以实现悬停效果,因为单个音频元素不能重叠,因此每个按钮都需要自己的声音效果 我知道插入成功了,因为当我检查页面时,我看到了元素。该元素在被直接访问时播放,但现在使用。它不起作用。非常感谢您的帮助 以下是我在Firefox的“inspect元素”中找到的生成的HTML: <audio class="pipe1"> <source src="/frontshi

我使用了.each和before在“product_name”类的每个元素之前自动插入一个类为“pipe1”的音频元素,以实现悬停效果,因为单个音频元素不能重叠,因此每个按钮都需要自己的声音效果

我知道插入成功了,因为当我检查页面时,我看到了元素。该元素在被直接访问时播放,但现在使用。它不起作用。非常感谢您的帮助

以下是我在Firefox的“inspect元素”中找到的生成的HTML:

<audio class="pipe1">
  <source src="/frontshift/audio/pipe1.mp3"></source>
  <source src="/frontshift/audio/pipe1.ogg"></source>
</audio>
<span class="product_name">Product</span>
以下代码不适用:

$(this).closest(".pipe1").currentTime = .04;
$(this).closest(".pipe1").play();
以下警报未定义:

alert($(this).closest(".pipe1").attr("class"));
.closest选择祖先,以选择以前的同级使用。prev

.closest选择祖先,以选择以前的同级使用。prev


您需要从jQueryObject获取DOM节点:

$(this).closest(".pipe1").get(0).currentTime = 0.4
或使用类似数组的行为:

$(this).closest(".pipe1")[0].currentTime = 0.4

您确定上下文引用的是音频标记内的元素吗?

您需要从jQueryObject获取DOM节点:

$(this).closest(".pipe1").get(0).currentTime = 0.4
或使用类似数组的行为:

$(this).closest(".pipe1")[0].currentTime = 0.4

您确定上下文this引用音频标记内的元素吗?

是的,您应该使用$this.prev'.pipe1'

是的,你应该使用$this.prev'.pipe1'

如果您的代码位于附加到.product\u name元素的处理程序中,那么.closest如何才能找到?根据您的HTML,它们是同级。如果您的代码位于附加到.product\u name元素的处理程序中,那么.closest如何才能找到?根据你的HTML,他们是兄弟姐妹。应该是一条评论吗?是的,我想回复@am not I am,但我不知道如何回复。他的名声太低,除了他自己的帖子之外,什么都不能评论。应该是一条评论吗?是的,我想回复@am not I am,但我找不到该怎么回复。他的名声太低,除了他自己的帖子外,什么都不能评论。你实际上并没有编辑它,你只是建议编辑一下。它在生效之前还需要得到批准。谢谢你,穆萨,我觉得自己像个傻瓜。顺便问一下,你能告诉我为什么[0]是必要的,因为它应该只选择一个元素吗?@Mr.Lavalamp:NULL意外编辑了这篇文章。高级代表用户的编辑不需要批准。您可以通过单击编辑的链接查看修订历史。@Mr.Lavalamp play和currentTime是音频元素的属性,要从jQuery对象访问音频元素,请使用[]符号或.get。您实际上没有编辑它,只是建议进行编辑。它在生效之前还需要得到批准。谢谢你,穆萨,我觉得自己像个傻瓜。顺便问一下,你能告诉我为什么[0]是必要的,因为它应该只选择一个元素吗?@Mr.Lavalamp:NULL意外编辑了这篇文章。高级代表用户的编辑不需要批准。您可以通过单击编辑的链接查看修订历史。@Mr.Lavalamp play和currentTime是音频元素的属性,要从jQuery对象访问音频元素,请使用[]符号或.get。