请查看以下代码。我无法将我的价值观加起来。数字只是将其自身添加到字符串的后面。不知道怎么回事。
$("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,...
但是我得到了诸如{{1}}等等的值
此处有任何帮助表示赞赏。
答案 0 :(得分:6)
将加法包装在括号中:
... + (last_td_id + 7) + ...
答案 1 :(得分:2)
您正在将字符串与数字连接,将括号括在括号中以对其执行算术运算。
更改
+last_td_id+1+
要
+(last_td_id+1)+
+
的{{3}}从左到右,在语句'....class="load_ads" id="'+last_td_id
中首先将左手串与数字(last_td_id
连接起来)并给出一个再次连接的字符串增量数字,如(2或3 ..)到前一个字符串。将括号括在数字周围使其precedence
为高,并且首先执行calucation,并在字符串中连接结果。
答案 2 :(得分:1)
plus
运算符仅在两个操作数均为数字时才执行数学加法。如果其中一个是字符串,它将执行字符串连接(并将1
强制转换为"1"
)。
然而它是left associative,你没有使用括号。所以你的表达式被评估为
(((…('<…' + id) + 1) + '"…') + id) + 2) + …
并且每一步产生一个字符串。正如其他人已经提到的那样,您需要首先将其包装在括号中来强制执行添加:
'<…' + (id + 1) + '"…' + (id + 2) + …
// evaluated as
(((…('<…' + (id + 1)) + '"…') + (id + 2)) + …
答案 3 :(得分:-1)
在javascript中使用'+'总是附加变量/字符串。尝试这样的事情:
var c = (16 * 24) + 12;
d = c.toString();
只有这样var'd才能给你数学输出
在你的情况下,它可能是
(last_td_id+4).toString(); and so on