按钮的值为2个字的变量

时间:2015-04-01 12:49:20

标签: javascript jquery

我查了一下,但没有找到任何关于双字变量的内容。我正在尝试将按钮值设置为变量,名称,即两个单词。我尝试了两种不同的方法,但最终只打印了第一个名字,而不是两者。

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>"
        );
    }

为什么只打印出名字,而不是两者都打印出来?

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

4 个答案:

答案 0 :(得分:2)

将值放在引号中。试试这个:

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

理想情况下,任何属性值都必须在引号中。

答案 1 :(得分: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

为避免将来总是用引号

包装属性值时出现此错误

答案 2 :(得分:1)

将您的代码更改为:

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

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

答案 3 :(得分:1)

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

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

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