0

出于单元测试的目的,我需要检查 jQuery & jPlayer 对象的src对象属性。不幸的是,我无法通过 DOM 访问该属性。

这是供参考的初始化代码:

$("#jquery_jplayer_1").jPlayer({
    ready: function (event) {
        $(this).jPlayer("setMedia", {
        mp3: "mysound.mp3"
        }).jPlayer("play"));
    }
(...)

Firebug 告诉我的财产在:

jPlayer.status.src

但是下面的代码返回一个未定义的。

$("#jquery_jplayer_1").jPlayer().status.src

这也返回一个未定义的。

$("#jquery_jplayer_1").jPlayer.status.src

调用和获取src值的正确路径命令是什么?

谢谢,

4

2 回答 2

3

如果我没记错的话,我认为它就像......

$("#jquery_jplayer_1").data("jPlayer").status.src
于 2012-10-09T11:07:49.400 回答
0

您正在尝试访问函数 jPlayer 返回的对象的属性。但是,您发布的萤火虫输出表明它不是返回值的属性,而是它自身的函数的属性。jPlayer 既是一个函数又是一个具有属性的对象。JS 中的所有函数都是对象,它们可以像任何其他对象一样具有属性,所以

jPlayer.status.src

访问由 jPlayer 标识的函数/对象的状态属性的 src 属性,而

jPlayer().status.src

访问调用jPlayer标识的函数返回的对象的status属性的src属性

根据评论

$(...).jPlayer

是 jQuery 选择器(通过 jPlayer 插件附加)的一个属性,该属性不必与标识符所jPlayer标识的相同。标识符实际上是全局对象的jPlayer属性,因此它们可能相同,也可能不同。在您的情况下,它们不一样,或者来自 firebug 的行不正确/不完整

于 2012-10-09T11:13:17.080 回答