使用变量作为属性但有空格?

时间:2014-10-25 18:39:06

标签: javascript jquery html variables

鉴于我有一个名称属性的对象,比如说:' Woodcutters Hut'。如果我尝试将其分配给按钮属性:

$('#possible_constructions').append("<button name=" + object.name + ">" + object.name + "</button>")

按钮编写正确的是整个&#39; Woodcutters Hut&#39;但是,name属性只包含第一个单词&#39; Woodcutters&#39;。和小屋在外面显示如下:

<button name="Woodcutters" hut>Woodcutters Hut</button>

无论如何要确保正确分配属性?

2 个答案:

答案 0 :(得分:1)

让jQuery为您处理名称值。不要构建字符串。

$("<button></button>", { 
    name: object.name, 
    text: object.name
}).appendTo("#possible_constructions");

虽然重要的是要注意“Woodcutters Hut”不是一个合适的名字。您不应该在名称值中使用空格。您应该考虑考虑将该值重新塑造成更合适的值 - 可能通过用下划线替换非字母数字字符:

object.name.replace(/[^\w]/g, "_");

这会将“Woodcutters Hut”转换为“Woodcutters_Hut”。

答案 1 :(得分:0)

试试这个,如果有效

  $('#possible_constructions').append("<button name='" + object.name + "'>" + object.name + "</button>")