使用Jquery的.closest访问音频元素不起作用?

Mr.*_*amp 0 html javascript audio jquery

我使用.each()before()在类'pipe1'的每个元素之前自动插入带有类的音频元素用于悬停效果,'product_name'因为单个音频元素不能自身重叠,因此每个按钮都需要自己的声音效果.

我知道插入工作,因为当我检查页面时,我看到了元素.直接访问时播放的元素,但现在使用.closest()它不起作用.任何帮助是极大的赞赏.

以下是生成的HTML,我在Firefox的'inspect element'中找到了它:

<audio class="pipe1">
  <source src="/frontshift/audio/pipe1.mp3"></source>
  <source src="/frontshift/audio/pipe1.ogg"></source>
</audio>
<span class="product_name">Product</span>
Run Code Online (Sandbox Code Playgroud)

我正在使用的所有代码都在相同的.hover效果中激活,即 $(".product_name").hover()

以下代码成功播放音频:

$(".pipe1")[0].currentTime = .04;
$(".pipe1")[0].play();
Run Code Online (Sandbox Code Playgroud)

以下代码不:

$(this).closest(".pipe1").currentTime = .04;
$(this).closest(".pipe1").play();
Run Code Online (Sandbox Code Playgroud)

以下警告未定义:

alert($(this).closest(".pipe1").attr("class"));
Run Code Online (Sandbox Code Playgroud)

Mus*_*usa 5

.closest() 选择祖先,选择以前的兄弟使用 .prev()

var audio = $(this).prev(".pipe1")[0];
audio.currentTime = .04;
audio.play();
Run Code Online (Sandbox Code Playgroud)