【发布时间】:2011-09-05 23:35:55
【问题描述】:
我有一个 jQuery 函数中的 $.each 的问题,因为我有以下函数:
function set_max(unit) {
var max = parseInt($("#"+unit+"_area").html().replace('(','').replace(')',''));
if (max > 0) {
$("[name="+unit+"]").val(max);
$("[name=area]").html('(0)');
} else {
var val = $("#"+unit+"_area").attr('max');
$("[name="+unit+"]").val('');
$("#"+unit+"_area").html('('+val+')');
$.each($("[name=area]"),function(){
var caller = $(this).attr('id');
vall = $("#"+caller+"_area").attr('max');
$(caller).html('('+vall+')');
});
}
}
但是每个部分都不起作用,因为链接中的 .html() 部分仍然为 0。 链接是这样的:
<a id="spear_area" name="area" max="5812" href="javascript:set_max('spear');">(5812)</a>
【问题讨论】:
-
确保将基数传递给
parseInt。 -
啊,我解决了我的问题,$.each($("[name=area]"),function(){ var caller = $(this).attr('id'); vall = $("#"+caller).attr('max'); $("#"+caller).html('('+vall+')'); }); $.each 部分有一些 id 查找问题。
-
这很可能是我见过的最丑陋的 javascript/jquery 代码。你可能想用 $(selector).each 替换 $.each,看看 this
-
尼科,我是初学者。如果我知道有更好的解决方案,很可能我什至不会在这里发帖。似乎我的丑陋代码有效,因为我验证了 -Link 和 Dennis 的每个部分,但没有一个有效,但我丑陋的评论完成了这项工作。