Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将字符串转换为节点?_Javascript_Html_Css - Fatal编程技术网

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) {

我正在尝试从一组名称列表(从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) {
        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()/代码>是习惯用法。谢谢,这是有意义的。