2015-04-01 30 views
0

我查了它,但还没有找到任何有关双字变量的信息。我试图设置一个按钮值作为一个变量,一个名字,这是两个单词。我尝试了两种不同的方式,但最终都只打印了名字,而不是两者。作为一个2字变量的按钮的值

var $div = $("<div></div>"); 
    for (var i = 0; i < people.length; i++) { 
    $div.append(
      "<p>" 
      + "<input type='submit' value="+people[i].name+" id="+i+">" 
      + "</p>" 
      + "<br>" 
    ); 
} 
$("#left2").append($div); 

,我也试过这样:

for (var i = 0; i < people.length; i++) { 
     $("#left2").append(
      "<p>" 
      + "<input type='submit' value="+people[i].name+" id="+i+">" 
      + "</p>" 
      + "<br>" 
     ); 
    } 

为什么只打印出的第一个名字,而不是两者兼而有之?

编辑:谢谢大家的帮助!希望我能接受所有的答案,但你们都得到了赞成。我很感激带你花时间回答这个问题!

回答

2

把值quotes.Try这样的:

"<input type='submit' value='"+people[i].name+"' id='"+i+"'>" 

理想的情况下,任何属性值必须加引号。

2

value应该是单引号在这种情况下

+ "<input type='submit' value='"+people[i].name+"' id="+i+">" 

这将产生HTML:

<input type='submit' value='My Name' id=1> 

你的代码生成如下代码:

<input type='submit' value=My Name id=1> 

所以value只是"My",也有一些单独的属性Name

为了避免在未来总是包这样的错误在引号中的属性值

1

你的代码更改为:

for (var i = 0; i < people.length; i++) { 
     $("#left2").append(
      "<p>" 
      + "<input type='submit' value='"+people[i].name+"' id="+i+">" 
      + "</p>" 
      + "<br>" 
     ); 
    } 

这样的单引号会正确指示属性值的开始和结束。

1
for (var i = 0; i < people.length; i++) { 
    $("#left2").append(
     "<p>" 
     + "<input type='submit' value='"+people[i].name+"' id="+i+">" 
     + "</p>" 
     + "<br>" 
    ); 
} 

希望这会有所帮助。 重要的一点是,值应该在单个quates内。

"<input type='submit' value='"+people[i].name+"' id="+i+">" 
相关问题