Javascript 用这个。在jquery选择器中

Javascript 用这个。在jquery选择器中,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,javascript程序中有一个包含对象的数组(gData)。 每个对象都有一个称为label的属性,它是一个对象。 每个标签在一个名为div_2;的div中包含一个名为span_2;的span 在其他与gData相关的操作中,label对象被实例化为 gData.label=新标签() 然后将gData对象推送到gData数组上 在主程序中,我可以执行以下工作正常的jquery代码: $(gData[0].label.span..css(“边框”,“5px纯绿色”) 我想向名为setCSS()

javascript程序中有一个包含对象的数组(gData)。
每个对象都有一个称为label的属性,它是一个对象。
每个标签在一个名为div_2;的div中包含一个名为span_2;的span

在其他与gData相关的操作中,label对象被实例化为

gData.label=新标签()

然后将gData对象推送到gData数组上

在主程序中,我可以执行以下工作正常的jquery代码:

$(gData[0].label.span..css(“边框”,“5px纯绿色”)

我想向名为setCSS()的标签对象添加一个函数原型。我会这样调用setCSS方法:

gData[0].label.setCSS("border","5px solid green");
我写的setCSS代码(如下)不起作用。我猜选择器坏了

Label.prototype.setCSS = function(args) {

// args contains an object in the form {"cssAtribute":"cssData"}
// call this method as label.setCSS({"border":"3px solid blue"});
// Any number of css attributes can be included in the args object

    $.each(args, function(theKey, theValue) {
        $(this.span_).css(theKey, theValue);
    });
}
我已经尝试了$(this.span_)、$(this.div.span_)和其他几个选择器,但都不起作用


使用Firebug,我可以看到gData[0]包含一个label对象,label对象包含一个span_u对象。我的选择器规格错误吗?还是我错过了其他让我感到愚蠢的原因?

这是
jQuery中的
。每个
都有不同的作用域。您需要先将其保存在局部变量中:

var $span = $(this.span_);
$.each(args, function(theKey, theValue) {
    $span.css(theKey, theValue);
});
请注意,您的示例是
.setCSS(“边框”,“5px纯绿色”)使用此方法不起作用,因为它要求参数是使用键/值的对象

但是,您应该能够将该方法简化为:

Label.prototype.setCSS = function() {
    $.prototype.css.apply($(this.span_), $.makeArray(arguments));
};
这样,您就可以像jQuery使用
.css()
包括您的实现示例一样使用它

小提琴:

第一个例子:


第二个例子:

这个
jQuery中。每个
都有不同的作用域。您需要先将其保存在局部变量中:

var $span = $(this.span_);
$.each(args, function(theKey, theValue) {
    $span.css(theKey, theValue);
});
请注意,您的示例是
.setCSS(“边框”,“5px纯绿色”)使用此方法不起作用,因为它要求参数是使用键/值的对象

但是,您应该能够将该方法简化为:

Label.prototype.setCSS = function() {
    $.prototype.css.apply($(this.span_), $.makeArray(arguments));
};
这样,您就可以像jQuery使用
.css()
包括您的实现示例一样使用它

小提琴:

第一个例子:


第二个示例:

根据您的建议,下面的代码仍然不起作用<代码>变量$span=$(this.span);$。每个(参数,函数(theKey,theValue){$span.css(theKey,theValue);})第一个示例在这里有效:第二个示例在这里有效:根据您的建议,下面的代码仍然无效<代码>变量$span=$(this.span);$。每个(参数,函数(theKey,theValue){$span.css(theKey,theValue);})第一个示例在这里起作用:第二个示例在这里起作用: