Javascript无法读取非<;输入>;标签

Javascript无法读取非<;输入>;标签,javascript,Javascript,小问题,对于我的Javascript代码,程序应该使用getElementById读取,但我无法使用我的main和标记来执行此操作。程序将仅使用输入标记读取(我希望通过编程读取网站上的文本)。 每当我按下按钮时,程序只会说“未定义”。 有人知道这个问题的想法吗 代码中文本到语音无法工作的区域 <main id="text"> This program API is not working </main> <p id="text&quo

小问题,对于我的Javascript代码,程序应该使用
getElementById
读取,但我无法使用我的
main
标记来执行此操作。程序将仅使用
输入
标记读取(我希望通过编程读取网站上的文本)。

每当我按下按钮时,程序只会说“未定义”。 有人知道这个问题的想法吗

代码中文本到语音无法工作的区域

<main id="text"> This program API is not working </main>
<p id="text"> This is also not read </p>

您需要为每个元素使用innerText。此外,您还多次使用
id=“text”
,id是唯一的,如果您将相同的id分配给多个元素,则只能使用它获取第一个项目。运行更新代码段:

函数TextToSpeech(){
const speech=新的SpeechSynthesisUtterance();
let voices=speechSynthesis.getVoices();
//让convert=document.getElementById(“text”).value;
speech.text=document.getElementById(“text1”).innerText;
window.speechSynthesis.speak(讲话);
speech.text=document.getElementById(“text2”).innerText;
window.speechSynthesis.speak(讲话);
}
此程序API不工作

这也不会被读取


ID必须是唯一的
.innerText
而不是
.value
。Gilsdav的答案是正确的;另外,您的示例中有@Frazer,尽管看起来很烦人,但这并不重要。HTML确实是错误的tolerant@Gilsdav编辑,它工作,但只有当你使用它一次
<button type="button" onclick="SoeechModule()" class="btn btn-info" "> Text To Speech </button>
function SpeechModule(var1)
{
   const TxtToSpeech = new SpeechSynthesisUtterance();
    let voices = speechSynthesis.getVoices();
    let search = document.getElementById("data").innerHTML;

    TxtToSpeech.text = search;
   
    TxtToSpeech.volume = 2;
    TxtToSpeech.rate = 0.5;
    TxtToSpeech.pitch = 2;
   
    TxtToSpeech.voice = voices[4];
   
    window.speechSynthesis.speak(TxtToSpeech);

}