jquery如何解析对象的类或属性

jquery如何解析对象的类或属性,jquery,css,attr,Jquery,Css,Attr,抱歉,如果这是一个“noob”问题。(我已经对它进行了大量的编辑,以更清楚地了解我在寻找什么。)考虑一些链接: <p><a class="bgColor_0" href="whatever">Click Me</a></p> <p><a class="bgColor_1" href="whatever">Click Me</a></p> <p><a class="bgColor_2"

抱歉,如果这是一个“noob”问题。(我已经对它进行了大量的编辑,以更清楚地了解我在寻找什么。)考虑一些链接:

<p><a class="bgColor_0" href="whatever">Click Me</a></p>
<p><a class="bgColor_1" href="whatever">Click Me</a></p>
<p><a class="bgColor_2" href="whatever">Click Me</a></p>
我想要的是以字符串的形式获取单击的类的background color属性的值(如果未设置,则为null)

所以我想创建一个click函数,用于测试以bgColor开头的类_

jQuery('a').click( function(){ 
  myClass = jQuery(this).attr('class').match(/\bbgColor_\S+/g); 
  // eg. myClass = 'bgColor_0';
  // now... how do I get the background-color property of bgColor_0?;

} );
我想要得到的是类为myClass的div的backgroundColor属性的-value


例如,如果用户单击了a.bgColor_1,我希望在样式表中获得类div.bgColor_1的背景色属性,然后将另一个(待定)div分配给类bgColor_1,以便我可以更改其颜色。

您正在寻找部分匹配选择器:

$(this).is("[class^='bgColor']")
它既短又甜,要求类以
bbgColor
开头,就像您的示例一样

如果需要允许类出现在属性中的任何位置,请使用:

$(this).is("[class*='bgColor']")

您正在查找部分匹配选择器:

$(this).is("[class^='bgColor']")
它既短又甜,要求类以
bbgColor
开头,就像您的示例一样

如果需要允许类出现在属性中的任何位置,请使用:

$(this).is("[class*='bgColor']")
试试这个:

$(this).attr('class').substring(0,7)="bgcolor"
为了获取类的属性,我想向您展示:

试试这个:

$(this).attr('class').substring(0,7)="bgcolor"
为了获取类的属性,我想向您展示:


我认为人们回答了错误的问题。我想你的问题是

“如何获取bgColor_0的background color属性?”但应该是“如何获取css类以bgColor开头的链接的background color属性?”

看到和


请注意,
bgColor\u 0
bgColor\u 1
的这种模式似乎是一种反模式,是代码气味。

我认为人们回答了错误的问题。我想你的问题是

“如何获取bgColor_0的background color属性?”但应该是“如何获取css类以bgColor开头的链接的background color属性?”

看到和

请注意,
bgColor\u 0
bgColor\u 1
的这种模式似乎是一种反模式,并且是代码气味。

您的意思是这样吗

jQuery('a').click( function(){ 
    alert( $(this).css('background-color') );
} );
你是说像这样

jQuery('a').click( function(){ 
    alert( $(this).css('background-color') );
} );


打字错误我什么也没看见。它工作正常:对不起,我正在阅读他的HTML标记,我看到了
bgColor\uuu
,所以我想知道为什么在两个y'all Selector中都有两个
b
。。啊,我一直关注js并不断看到
\bbgColor
。没有在心里忽略
\b
是的,这也让我感到困惑,OP在这里不是很清楚这使它起作用,但我认为“正确”的解决方案是有更好的CSS类名,OP应该要么去掉
\u 0
替代,或者如果OP真的需要它们,在所有元素中添加一个CSS类
bgcolor
。听起来比依赖stringTypo的开头更干净?我什么也没看见。它工作正常:对不起,我正在阅读他的HTML标记,我看到了
bgColor\uuu
,所以我想知道为什么在两个y'all Selector中都有两个
b
。。啊,我一直关注js并不断看到
\bbgColor
。没有在心里忽略
\b
是的,这也让我感到困惑,OP在这里不是很清楚这使它起作用,但我认为“正确”的解决方案是有更好的CSS类名,OP应该要么去掉
\u 0
替代,或者如果OP真的需要它们,在所有元素中添加一个CSS类
bgcolor
。听起来比依赖字符串的开头更清晰这是最接近的答案。但是,如果该元素有多个类呢?您可以使用:$(this).hasClass('bgcolor')我错了,并将其作为满足我需要的“正确”答案。。。不是最初的评论,而是我需要的链接“Look Here”。显然,您需要遍历样式表以获取当前未激活的选择器的属性。。。我没有意识到这一点。因此,该链接中的函数起作用。而且,开销惊人地低。谢谢@jchwebdev请花一些额外的时间来阐述您的问题。你让每个人都猜到了你真正的问题是什么,甚至你也改变了你的想法,你的问题是什么。你真正的问题是,“我怎么知道什么样式与CSS类关联?”编辑。不幸的是,在答案变得更加明显之前,我并不知道如何很好地表述这个问题。谢谢你的帮助。这是最接近答案的。但是,如果该元素有多个类呢?您可以使用:$(this).hasClass('bgcolor')我错了,并将其作为满足我需要的“正确”答案。。。不是最初的评论,而是我需要的链接“Look Here”。显然,您需要遍历样式表以获取当前未激活的选择器的属性。。。我没有意识到这一点。因此,该链接中的函数起作用。而且,开销惊人地低。谢谢@jchwebdev请花一些额外的时间来阐述您的问题。你让每个人都猜到了你真正的问题是什么,甚至你也改变了你的想法,你的问题是什么。你真正的问题是,“我怎么知道什么样式与CSS类关联?”编辑。不幸的是,在答案变得更加明显之前,我并不知道如何很好地表述这个问题。谢谢你的帮助。你有什么理由不能同时拥有
bg\u Color\u X
hasBgColor
?这样你就不必做任何部分匹配选择器。顺便说一句,类名bgColor\u 0的语义不是很强。尝试查看,这样您就不必误用类名来避免在多个应用程序中重复相同的颜色places@ErikPhilips没有理由,在我的书中,这是一个更干净的解决方案。它连接thr