Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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 使用innerHTML设置数据无法使用querySelector带来数据_Javascript_Innerhtml_Queryselector - Fatal编程技术网

Javascript 使用innerHTML设置数据无法使用querySelector带来数据

Javascript 使用innerHTML设置数据无法使用querySelector带来数据,javascript,innerhtml,queryselector,Javascript,Innerhtml,Queryselector,但我什么也得不到,所以我不得不做一些疯狂的工作,比如: document.querySelector('span#2') 这不是来自示例代码,但因为这是最糟糕的,所以我想用它作为示例。您的 ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点 使用类似于: ET.arentElement.arentElement.parentElement.previousElementSibling.firstElementChild.inner

但我什么也得不到,所以我不得不做一些疯狂的工作,比如:

document.querySelector('span#2')
这不是来自示例代码,但因为这是最糟糕的,所以我想用它作为示例。

您的

ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点

使用类似于:

ET.arentElement.arentElement.parentElement.previousElementSibling.firstElementChild.innerText;
你的跨度是:

document.querySelector('#my-data-2')
所有内容都在后面打勾,就像您的代码一样。

ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点

使用类似于:

ET.arentElement.arentElement.parentElement.previousElementSibling.firstElementChild.innerText;
你的跨度是:

document.querySelector('#my-data-2')
所有内容都在后面的勾号内,就像在代码中一样。

span2是一个无效的CSS选择器,ID选择器不能以更多的未替换数字开始。一般来说,最好不要使用以数字开头的ID值,但如果使用,则必须以不同方式选择它们-或者不使用CSS选择器:

<span class='item' id ='my-data-${anArray.length + 1}'>
…或者通过逃避它,但坦率地说,这有点难看,或者使用属性形式:

span = document.getElementById("2");
另请注意-如果您的代码在尝试获取元素之前没有将li追加到文档中,您可能希望将其追加到文档中,或者在li上使用querySelector:

在CSS选择器中,正如Taplar在注释中指出的那样,在这种特殊情况下,由于span有一个类,您可以添加该类:

span = li.querySelector("[id='2']");
span2是无效的CSS选择器,ID选择器不能以中的未替换数字开头。一般来说,最好不要使用以数字开头的ID值,但如果使用,则必须以不同方式选择它们-或者不使用CSS选择器:

<span class='item' id ='my-data-${anArray.length + 1}'>
…或者通过逃避它,但坦率地说,这有点难看,或者使用属性形式:

span = document.getElementById("2");
另请注意-如果您的代码在尝试获取元素之前没有将li追加到文档中,您可能希望将其追加到文档中,或者在li上使用querySelector:

在CSS选择器中,正如Taplar在注释中指出的那样,在这种特殊情况下,由于span有一个类,您可以添加该类:

span = li.querySelector("[id='2']");
如果使用document.createElement,则新元素存在于内存中,但不会自动插入到当前DOM中。您需要将它放入DOM中,然后才能找到它

对于.innerHTML,HTML字符串会立即解析到DOM中,因此不需要正式附加或插入以这种方式创建的元素。这就是为什么在下面的代码中,只需要追加li变量,而不需要追加该元素的所有.innerHTML

设anArray=[]; 让输入值=测试; const li=document.createElement'li'; li.innerHTML=` ${INPUTVALUE} `; //必须将动态创建的元素追加/插入到DOM中 document.body.appendChildli; //然后,您可以找到它: console.logdocument.querySelectorspan.item.textContent 如果使用document.createElement,则新元素存在于内存中,但不会自动插入到当前DOM中。您需要将它放入DOM中,然后才能找到它

对于.innerHTML,HTML字符串会立即解析到DOM中,因此不需要正式附加或插入以这种方式创建的元素。这就是为什么在下面的代码中,只需要追加li变量,而不需要追加该元素的所有.innerHTML

设anArray=[]; 让输入值=测试; const li=document.createElement'li'; li.innerHTML=` ${INPUTVALUE} `; //必须将动态创建的元素追加/插入到DOM中 document.body.appendChildli; //然后,您可以找到它:
console.logdocument.querySelectorspan.item.textContent;欢迎来到堆栈溢出!请拿着你的徽章!,环顾四周,仔细阅读,特别是我还推荐Jon Skeet的。@Crowder谢谢你的提示!我将阅读所有内容:欢迎来到Stack Overflow!请拿着你的徽章!,环顾四周,仔细阅读,特别是我还推荐Jon Skeet的。@Crowder谢谢你的提示!我将阅读所有内容:span有一个id,在这个特殊情况下可能是2。还请注意,文档中可能还有其他跨距。不是我的dvoh我以为她有个错误的观念,认为span2是第二个谢谢。我从你的回答中得到了一个想法,我解决了这个问题在这种特殊情况下,跨度的id可能是2。还请注意,文档中可能还有其他跨距。不是我的dvoh我以为她有个错误的观念,认为span2是第二个谢谢。我从你的回答中得到了一个想法,我解决了这个问题在我提问之前,我应该读一读“我该如何提出一个好问题?”。你给了我很多信息,但我给你的信息不够。我很抱歉。我已经做过了。和document.querySelector[id=2]。项;表示它不是有效的选择器。我给了身份证号码,因为我是comp
如果相等,则与其他元素id相同。我应该更改我的全部代码或重新组织我的问题。非常感谢你的帮助@SophiaLee-很抱歉,您需要在2周围加引号,原因与它在2中无效相同。我已经确定了答案。在提问之前,我应该先读一下“我该如何提出一个好问题?”。你给了我很多信息,但我给你的信息不够。我很抱歉。我已经做过了。和document.querySelector[id=2]。项;表示它不是有效的选择器。我给id加上数字是因为我在和其他元素id比较,如果它相等的话。我应该更改我的全部代码或重新组织我的问题。非常感谢你的帮助@SophiaLee-很抱歉,您需要在2周围加引号,原因与它在2中无效相同。我已经确定了答案。