在jQuery中使用HTML属性作为变量名

时间:2014-08-03 15:56:12

标签: jquery

HTML:

<div data-section="html" class="cono-html">                        
<div data-section="css" class="cono-css">                
<div data-section="jquery" class="cono-jquery">     

jQuery的:

var html="<div class='radial-info'>El lenguaje histórico</div>";
var css="<div class='radial-info'>Las hojas de estilo CSS ya no sólo dan aspecto estático</div>";
var jquery="<div class='radial-info'>Una interminable lista de recursos de Javascript</div>";

我想用jQuery创建一个.append,在单击的项目上插入存储在变量上的内容与属性“data-section”同名,避免创建if语句。

当我尝试这样的事情时:

obj.append(obj.attr('data-section'));

section=obj.attr('data-section');
obj.append(section); 

它只是附加属性的名称,而不是存储在具有相同名称的变量上的内容。您使用了什么程序?

1 个答案:

答案 0 :(得分:2)

Javascript不支持这种&#34;动态&#34;变量,你不能在某个地方插入一个字符串,并期望它引用一个变量。

如果创建对象,可以使用括号表示法:

var stuff = {
    html   : "<div class='radial-info'>El lenguaje histórico</div>",
    css    : "<div class='radial-info'>Las hojas de estilo CSS ya no sólo dan aspecto estático</div>",
    jquery : "<div class='radial-info'>Una interminable lista de recursos de Javascript</div>"
};

obj.append( stuff[obj.attr('data-section')] );

你也可以做这样的事情来获得全局定义的变量

window[obj.attr('data-section')]

取决于您所在的范围,但您不应该使用对象。