有没有办法将属性的值附加到另一个属性?

时间:2012-09-06 23:47:21

标签: javascript jquery html css

我觉得这是一个愚蠢的简单问题,但我最近做了很多CSS工作,我觉得有点生疏。所以,我有几个带有classname:和class:attributes的按钮。基本上,我想要做的就是获取classname属性的值并将其附加到类。只有带有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

});

还是我在完全错误的球场?再一次,非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

首先,请不要使用属性调用className。这是保留作为解决class属性的方法,因为class是javascript中的保留字。因此,如果您使用名称为classclassName的属性,则最终可能难以在javascript中单独访问它们。这可能是一团糟。为实际上不是class的那个选择一个更唯一的名称。

要添加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"));

答案 1 :(得分:1)

这就是你需要的东西?

$.each($('#ui-button.className'), function() {
    var $element = $(this);
    $element.addClass($element.val());
});

答案 2 :(得分:-1)

这个怎么样?

$('button[className]').each(function(){
   var classNameValue = $(this).attr('className');
   var classValue = $(this).attr('class');
   $(this).attr('class', classValue + classNameValue);
});