2014-10-30 86 views
0

我使用的是带有红宝石的websockets,但是我的问题是使用javascript。我试图使用pic变量访问img位置。我记得使用“解析”命令,但我不记得在网上看到它。从变量中选择一个ID

<body> 
    <div id ="a0"> 
    <img class = "image" src=""> 
    <br> 
    <p class = "info"></p> 
    </div> 

    <div id ="a1"> 
    <img class = "image" src=""> 
    <br> 
    <p class = "info"></p> 
    </div> 
</body> 



:javascript 
    var msg = {"selector" : "a0", "image" : "image0.jpg", "info" : "picture"}; 
    var pic = document.getElementById(msg["selector"]); 

这是问题

pic.select(".image").src = msg["image"]; 
    pic.select(".info").innerHTML = msg["info"]; 
+1

我应该指出,ID是必须是唯一的......你有超过1个ID名称为“图像”和“信息” – phantom 2014-10-30 20:36:46

+0

使用引入nokogiri红宝石我可以访问这两个很好。 (“div#a0 img”)我不明白为什么这是不好的礼节。 – user2446058 2014-10-30 20:38:48

+0

因为像幽灵一样,ID的意思是独一无二的。 – Hobbes 2014-10-30 20:39:46

回答

0
<body> 
    <div id ="a0"> 
    <img class = "image" src=""> 
    <br> 
    <p class = "info"></p> 
    </div> 
    <div id ="a1"> 
    <img class = "image" src=""> 
    <br> 
    <p class = "info"></p> 
    </div> 
</body> 

试试这个

pic.querySelector(".image").src = msg["image"]; 
pic.querySelector(".info").innerHTML = msg["info"]; 
+0

感谢所有编辑 - 新标记 – 2014-10-30 20:48:16

+0

我得到一个“TypeError:undefined不是函数“控制台中出现错误。我使用纯js。我不确定选择方法是否正确。 – user2446058 2014-10-30 20:52:17

+0

好的 - 我已经修改了答案,因此它反映了您的查询选择器方法 - html是否适合您? – 2014-10-30 21:09:55