1

我觉得这是一个愚蠢的简单问题,但我最近做了这么多 CSS 工作,感觉有点生疏。所以,我有几个带有 classname: 和 class: 属性的按钮。基本上,我要做的就是获取类名属性的值并将其附加到类。只有带有 className 的按钮需要附加其内容。

classname="blah_btn blah_btnGrey" class="blah blah blah foo foo"

我会写类似的东西:

if ($('#ui-button').has("className")) {
$(("className").val()).appendTo("class");

或者更多类似的东西:

$("button").each(function() {
//do stuff

});

还是我完全错了?再次,非常感谢任何帮助。

4

3 回答 3

2

首先,请不要使用属性调用className。这是保留作为处理class属性的方式,因为class它是 javascript 中的保留字。因此,如果您使用名称为classand的属性className,您最终可能很难在 javascript 中单独访问它们。这可能是一团糟。为实际上不是的名称选择一个更独特的名称class

要添加类属性,您只需使用.addClass()

$('#ui-button').addClass("blah_btn")

jQuery 的 `addClass() 足够聪明,如果它已经存在就不会添加它。


如果要获取属性并将其添加到实际类中,可以这样做:

$('#ui-button').addClass($(elem).attr("myAttribute"));

如果您只想将一个属性添加到另一个属性上,您可以这样做:

var target = $('#ui-button');
target.attr(target.attr("myAttribute") + $(elem).attr("myAttribute"));
于 2012-09-06T23:52:49.767 回答
1

这就是你需要的?

$.each($('#ui-button.className'), function() {
    var $element = $(this);
    $element.addClass($element.val());
});
于 2012-09-06T23:50:38.370 回答
-1

这个怎么样?

$('button[className]').each(function(){
   var classNameValue = $(this).attr('className');
   var classValue = $(this).attr('class');
   $(this).attr('class', classValue + classNameValue);
});
于 2012-09-06T23:54:41.153 回答