jQuery addClass问题

时间:2011-05-31 16:37:55

标签: jquery html css

我正在使用IE7。我有一个输入框如下:

<input name="location" type="text" id="location" maxlength="512" size="20" class="editable text"/>

我正在努力做到以下几点:

$("#location").addClass('flagged');

但这会消除文本框的所有现有样式。类'flag'没有任何与之关联的样式。现有的类具有以下CSS:

input.editable {
    height: 18px;
    background-color: #FFFFCC;
    padding-top: 0px; 
    padding-right: 0px;
    padding-bottom: 0px;
    padding-left: 0px;
    border:#FFFFCC 1px solid;
    margin:0px;
}

input.text {
    text-align:left;
    height:19px;
    width:100px;
}

如果我手动将“标记为”类添加到输入框,则所有样式都保持不变。在Firefox中,jQuery addClass()并未清除所有样式。为什么会在IE7中发生这种情况?

EDITED 我把它缩小到了这个......

if (!String.prototype.trim) 
{
    String.prototype.trim = function(){
        // stuff
    }
}

String.prototype.trim = function(){}

声明似乎导致了这个问题。有什么想法吗?

再次编辑似乎不喜欢它被称为'修剪'的事实。一天中的2小时花费:|

2 个答案:

答案 0 :(得分:1)

尝试查看分配给元素的类,IE:

var myClass = $('#location').attr('class'); 

alert("classes = " + myClass);

答案 1 :(得分:0)

来自http://api.jquery.com/addClass/

  

注意这一点非常重要   方法不替换类。它   只需添加该类,将其附加到   任何可能已被分配的东西   元素。

因此,如果您想切换课程,请尝试以下方法:http://api.jquery.com/toggleClass/