Javascript 是否可以将字符串转换为节点?
我正在尝试从一组名称列表(从1到10)创建一个随机名称生成器。我已经为每个名字分配了一个id(从“s01”到“s10”),并且正在尝试编写一些JavaScript从列表中随机选择一个。这就是我到目前为止所做的:Javascript 是否可以将字符串转换为节点?,javascript,html,css,Javascript,Html,Css,我正在尝试从一组名称列表(从1到10)创建一个随机名称生成器。我已经为每个名字分配了一个id(从“s01”到“s10”),并且正在尝试编写一些JavaScript从列表中随机选择一个。这就是我到目前为止所做的: if (action === 'who') { console.log("who"); let num = Math.floor((Math.random() * 10) + 1); console.log(num); if (num === 10) {
if (action === 'who') {
console.log("who");
let num = Math.floor((Math.random() * 10) + 1);
console.log(num);
if (num === 10) {
numb = s10.textContent;
} else {
num = ("s0"+num);
console.log(num);
numb = num.textContent;
}
console.log(numb);
但是我将console.logs设置为“未定义”,除非生成的数字是10,然后就可以了
我正在尝试将显示为num的内容转换为id,但我不确定如何进行转换。当您编写
num = ("s0" + num);
您只是创建一个字符串,它不会尝试将其用作变量的名称。因此它不会访问变量s06
中的节点
使用document.getElementById()
获取具有特定ID的元素,而不是尝试将其作为变量访问。可以使用字符串连接来创建参数
var id = num < 10 ? "s0" + num : "s" + num;
var element = document.getElementById(id);
var numb = element.textContent;
var id=num<10?“s0”+num:“s”+num;
var元素=document.getElementById(id);
var numb=element.textContent;
我会重新阅读您的else分支,您希望字符串的textContent
是什么?根据s01…s10的定义位置,您可能希望使用document.querySelector('#'+num)
或类似的工具获取它?或者它们是变量名?例如,如果s06.textContent是“Kevin”,这就是我想要返回的。else分支肯定是我的困惑所在。@Icepickle您缺少的是元素ID自动成为全局变量。@Barmar那么您的响应不应该是global[num].textContent
?:)不,因为我认为它依赖于它的风格很差,并且<代码>文档.GETelEnMyIdId()/代码>是习惯用法。谢谢,这是有意义的。