Javascript jQuery查找不使用音频源
我有一个Rails应用程序,在一个页面上有几个音频元素。要更改其中一个源,我使用jQuery选择器定位音频元素,然后使用.find(“source”)获取子源元素。出于某种原因,这是行不通的。如果我有一个id=“change\u me”的音频元素和一个包含的源元素Javascript jQuery查找不使用音频源,javascript,jquery,html5-audio,Javascript,Jquery,Html5 Audio,我有一个Rails应用程序,在一个页面上有几个音频元素。要更改其中一个源,我使用jQuery选择器定位音频元素,然后使用.find(“source”)获取子源元素。出于某种原因,这是行不通的。如果我有一个id=“change\u me”的音频元素和一个包含的源元素 $("#change_me").find("source") 返回未定义的 这里有一个JSFIDLE说明了这个问题。从父元素使用find()失败,使用选择器“#change_me source”也失败,但是引用源元素id的选择器直
$("#change_me").find("source")
返回未定义的
这里有一个JSFIDLE说明了这个问题。从父元素使用find()失败,使用选择器“#change_me source”也失败,但是引用源元素id的选择器直接返回该元素。发生什么事了
在change\u me
中缺失,因为它是audio
元素的id
audio = $("#change_me");
source = $("#change_me source");
您已将选择器用作$(“change\u me”)
,这是一个选项,因此它将搜索具有标记名change\u me
的元素,如
演示:在change\u me
中缺失,因为它是audio
元素的id
audio = $("#change_me");
source = $("#change_me source");
您已将选择器用作$(“change\u me”)
,这是一个选项,因此它将搜索具有标记名change\u me
的元素,如
演示:在change\u me
中缺失,因为它是audio
元素的id
audio = $("#change_me");
source = $("#change_me source");
您已将选择器用作$(“change\u me”)
,这是一个选项,因此它将搜索具有标记名change\u me
的元素,如
演示:在change\u me
中缺失,因为它是audio
元素的id
audio = $("#change_me");
source = $("#change_me source");
您已将选择器用作$(“change\u me”)
,这是一个选项,因此它将搜索具有标记名change\u me
的元素,如
演示:这是一个打字错误。代码中缺少#
:
$("#click_me").click(function(e) {
audio = $("change_me");
^==========> #
source = audio.find("source").first();
console.log(source[0]);
source = $("change_me source");
^=========> #
console.log(source[0]);
source = $("#change_me_source");
console.log(source[0]);
});
这是个打字错误。代码中缺少#
:
$("#click_me").click(function(e) {
audio = $("change_me");
^==========> #
source = audio.find("source").first();
console.log(source[0]);
source = $("change_me source");
^=========> #
console.log(source[0]);
source = $("#change_me_source");
console.log(source[0]);
});
这是个打字错误。代码中缺少#
:
$("#click_me").click(function(e) {
audio = $("change_me");
^==========> #
source = audio.find("source").first();
console.log(source[0]);
source = $("change_me source");
^=========> #
console.log(source[0]);
source = $("#change_me_source");
console.log(source[0]);
});
这是个打字错误。代码中缺少#
:
$("#click_me").click(function(e) {
audio = $("change_me");
^==========> #
source = audio.find("source").first();
console.log(source[0]);
source = $("change_me source");
^=========> #
console.log(source[0]);
source = $("#change_me_source");
console.log(source[0]);
});
在我看来,解决这个问题的最佳方法是在click事件之外声明
源
变量,这样就不需要遍历DOM了。这样你就不需要全局变量了
在我看来,解决这个问题的最佳方法是在click事件之外声明
源
变量,这样就不需要遍历DOM了。这样你就不需要全局变量了
在我看来,解决这个问题的最佳方法是在click事件之外声明
源
变量,这样就不需要遍历DOM了。这样你就不需要全局变量了
在我看来,解决这个问题的最佳方法是在click事件之外声明
源
变量,这样就不需要遍历DOM了。这样你就不需要全局变量了
谢谢,长夜,我把选择器弄糊涂了。但是,它在我的js.erb文件中仍然不起作用,而且选择器是正确的。@JPlato您能在fiddleArun中重现这个问题吗,谢谢您的帮助。在从控制器更新方法返回时,我使用js.erb模板修改页面内容,但由于某些原因,我无法让它更改源元素的src属性(尝试使用attr('src','…'))src=“…”最后,我放弃了,决定替换音频元素所在的整个div。谢谢,长夜,我屏蔽了选择器。但是,它在我的js.erb文件中仍然不起作用,选择器是正确的。@JPlato你能在fiddleArun中重现这个问题吗,谢谢你的帮助。我使用的是js。erb模板在从控制器更新方法返回时修改页面内容,但由于某些原因,我无法使其更改源元素的src属性(尝试使用attr('src','…'))src=“…”最后,我放弃了,决定替换音频元素所在的整个div。谢谢,长夜,我屏蔽了选择器。但是,它在我的js.erb文件中仍然不起作用,选择器是正确的。@JPlato你能在fiddleArun中重现这个问题吗,谢谢你的帮助。我使用的是js。erb模板在从控制器更新方法返回时修改页面内容,但由于某些原因,我无法使其更改源元素的src属性(尝试使用attr('src','…'))src=“…”最后,我放弃了,决定替换音频元素所在的整个div。谢谢,长夜,我屏蔽了选择器。但是,它在我的js.erb文件中仍然不起作用,选择器是正确的。@JPlato你能在fiddleArun中重现这个问题吗,谢谢你的帮助。我使用的是js。erb模板在从控制器更新方法返回时修改页面内容,但由于某些原因,我无法使其更改源元素的src属性(尝试使用attr('src','…'))src=“…”最后,我放弃了,只是决定替换音频元素所在并工作的整个div。HTML和fiddle一样吗?HTML和fiddle一样吗?HTML和fiddle一样吗?HTML和fiddle一样吗?