我遇到了以下一些代码的问题,我想知道我做错了什么。
我在eval调用的行上出现Uncaught SyntaxError:Unexpected token)错误。
function myfunction(){
var p1 = '';
var p2 = '';
var p3 = '';
for (i=1; i<=3; i++){
eval("$('#p"+i+"').closest('.filter').find('.vals div').each(function(){if ($.trim(p"+i+").length > 0) {p"+i+" += ',';} p"+i+" += $(this).attr('class');});");
}
}
以下是适用的HTML:
<div class="filter">
<label>Organizations</label>
<input id="p1" type="text" value="" />
<div class="vals">
<div class="3" title="Click to remove">ABC School District</div>
<div class="4" title="Click to remove">DEF School District</div>
</div>
</div>
<div class="filter">
<label>Groups</label>
<input id="p2" type="text" value="" />
<div id="vals"></div>
</div>
如果不是很明显我也在这里使用jQuery。
由于
答案 0 :(得分:5)
最好使用数组并正常执行代码:
function myfunction(){
var p = [null, '', '', '']; //Empty zeroth element to keep your 1-indexing
for (i=1; i<=3; i++){
$('#p'+i).closest('.filter').find('.vals div').each(function(){
if ($.trim(p[i]).length > 0) {
p[i] += ',';
}
p[i] += $(this).attr('class');
});
}
}
答案 1 :(得分:4)
您的代码,没有评估
function myfunction(){
var p1 = '';
var p2 = '';
var p3 = '';
for (i=1; i<=3; i++){
$("#p"+i).closest(//..... rest here
答案 2 :(得分:1)
你可能错过了一个“
eval("$('#p" + i + "'")...
FWI:您可以更轻松地将其分解为多个不连续的代码行并使用命名函数,而不是嵌套函数和链接。