2012-12-06 15 views
-1

如果它的類與其他div(2號)類的值相等,我想更改div容器的值(數字1)。如果class = n,jQuery更改值

首先,我得到的格數2的值:

var classId = $(this).attr('class').split(' ')[1]; 

它有兩個班,第二個是我使用。

接下來,我嘗試比較值和改變內部格號1中的數據:

$.ajax(test.base_url + "name/name/" + ID, { 
cache: false, 
success: function(data, textStatus, jqXHR) { 
    if ($("#redChar").attr("class") == classId) { 
     $("#redChar").find('.'+classId).html(data); 
    } 
    else { 
     $("#redChar").html(); 
    } 

}, 
dataType:"html" 
}); 

我做了什麼錯?

+0

這裏'this'代表着什麼?意味着第二格? – Mihir

+0

如果'#redChar'只有一個類,解決方案似乎是正確的。 ***如果是這樣***,試着調試你的代碼,確保你的Ajax返回成功,並且如果語句匹配。 ***如果不是*** - 嘗試使用'hasClass'方法,而不是比較'$(「#redChar」)。attr(「class」)'。 – F0G

+0

它只適用於第一個#redChar,但不適用於其餘的。 和$ this代表有兩個類的div。 – Juzt1s

回答

1

您應該使用$("#redChar").hasClass(classId)

另外,如果你想改變$("#redChar")的內容,你chould拿那find()直接更改應用到它:$("#redChar").html(data);

+0

'hasClass()'給出布爾值,他比較得到布爾值。兩者不一樣? – Mihir

+0

hasClass在div有多個類時有效。比較'class'屬性不會。 – gabitzish

+0

這一個: if($(「#redChar」)。attr(「class」)== classId){ \t \t $(「#redChar」)。html(data); 工作得很好,但它改變了具有該ID的div的值,但是當我嘗試$(「#redChar」)。hasClass(classId).html(data);這是行不通的。 – Juzt1s