2013-01-17 40 views
0

請看下面的代碼。我無法讓我的價值觀加起來。該數字只是將其自身添加到字符串的後面。想知道如何去做。追加整數

$("a[name='older_post']").click(function(){ 
    $("div.main_ads_div a[name='older_post']").remove().fadeOut(); 
    var last_td_id=parseInt($("table.main_ads_table:last").find("td.load_ads:last").attr("id"),10); 
    alert(last_td_id); //OUTPUTS 38 
    $("div.main_ads_div").append('<table class="main_ads_table" col="7" row="7"><tr><td class="load_ads" id="'+last_td_id+1+'"></td><td class="load_ads" id="'+last_td_id+2+'"></td><td class="load_ads" id="'+last_td_id+3+'"></td><td class="load_ads priority" id="'+last_td_id+4+'"></td><td class="load_ads priority" id="'+last_td_id+5+'"></td><td class="load_ads" id="'+last_td_id+6+'"></td><td class="load_ads" id="'+last_td_id+7+'"></td><td class="load_ads" id="'+last_td_id+8+'"></td></tr></table>'); 
}); 

所以我想要到這裏是一個要添加的每個td,我試圖讓39, 40, 41, 42...但我得到的值,如381, 382, 383,...等等等等

任何幫助這裏讚賞。

回答

6

裹加入括號:

... + (last_td_id + 7) + ... 
+0

甜美簡單:>。thanks! – Lawrence

2

您將字符串與數字連接起來,將括號附加在圓括號中以對其執行算術操作。

變化

+last_td_id+1+ 

+(last_td_id+1)+ 

+association爲從左到右,並在聲明中'....class="load_ads" id="'+last_td_id首先會連接左手串號(last_td_id),並再次給出了一個字符串像(2或3 ..)這樣的增量數字連接到前一個字符串。將圓括號放在數字的周圍使其precedence爲高,並且首先執行計算並將結果連接在字符串中。

+0

無需parseInt函數 - 它將在數轉換爲字符串第一 – Bergi

+0

的parseInt函數已經包含在代碼:'var last_td_id = parseInt(' @Bergi:_「它會將數字轉換爲字符串」_:你的意思是'parseint'返回一個字符串嗎?該行有點令人困惑,imo。 – Cerbrus

+0

@Cerbrus:No ,不是「返回」,而是「期望」,參見[spec算法]的步驟1(http://es5.github.com/#x15.1.2.2) – Bergi

-1

使用 '+' 在javascript總是附加變量/字符串。嘗試是這樣的:

var c = (16 * 24) + 12; 
d = c.toString(); 

才把VAR「d」會給你的數學輸出

在你的情況下,它可能是

(last_td_id+4).toString(); and so on 
+0

'控制檯。log((16 * 24)+ 12)'和'console.log(((16 * 24)+ 12).toString())'返回'396'。只是後者以字符串格式返回它。計算完全一樣。 在這裏使用'.toString()'完全沒有意義。 而且,沒有。 '+'不會追加append_。當處理數字時,它增加了。就像它在幾乎所有其他編程語言那樣。 – Cerbrus

1

plus運營商只執行數學加法只有兩個操作數都是數字。如果其中一個是字符串,它將執行字符串連接(並將1轉換爲"1")。

然而它是left associative,並且您沒有使用括號。所以你的表達式被評估爲

(((…('<…' + id) + 1) + '"…') + id) + 2) + … 

並且每一步都會產生一個字符串。您將需要執行除了被括號包裹它第一次執行,正如其他人已經提到:

'<…' + (id + 1) + '"…' + (id + 2) + … 
// evaluated as 
(((…('<…' + (id + 1)) + '"…') + (id + 2)) + …