我尝试在twitch.tv上用js发送消息。 为此,我可以尝试在聊天框中更改textarea。
<textarea class="tw-textarea tw-textarea--no-resize " placeholder="Send message" data-a-target="chat-input" data-test-selector="chat-input" style="padding-right: 6rem;"></textarea>
使用此代码:
document.getElementsByClassName('tw-textarea tw-textarea--no-resize ')[0].value=1;
页面上的文本更改(可视化),但源代码中没有更改,如何修复它?
答案 0 :(得分:1)
.getElementsByClassName
只允许一个类选择,如果你想使用多个,你必须使用.querySelector()
作为第一个上诉,或.querySelectorAll()
表示所有上诉并使用有效css选择器作为参数。
document.querySelectorAll('.tw-textarea.tw-textarea--no-resize ')[0].value = 1;
<textarea class="tw-textarea tw-textarea--no-resize " placeholder="Send message" data-a-target="chat-input" data-test-selector="chat-input" style="padding-right: 6rem;"></textarea>
答案 1 :(得分:0)
您可以尝试使用.querySelector
而不是这样做,而document.querySelector('.tw-textarea.tw-textarea--no-resize').value=1;
只提供一个元素:
document.querySelector('.tw-textarea.tw-textarea--no-resize').value=1;
<强>段:强>
<textarea class="tw-textarea tw-textarea--no-resize " placeholder="Send message" data-a-target="chat-input" data-test-selector="chat-input" style="padding-right: 6rem;"></textarea>
&#13;
split("/n")
&#13;
如果类按任何顺序排列并且只有一个元素,这将有效。
在页面上更改文本(可视),但源代码中没有更改,如何解决?
您的意思是更改视图源或文件本身吗?不可能。这将是运行时间。如果在页面启动时没有执行此操作,则它也不会永久保存到文件系统中。是的,它只是视觉 。 HTML 无法写入文件。
答案 2 :(得分:0)
使用
document.getElementsByClassName('tw-textarea tw-textarea--no-resize ')[0].innerText = "1";
而不是
document.getElementsByClassName('tw-textarea tw-textarea--no-resize ')[0].value=1;
另外,我建议给你的textarea一个像这样的唯一ID:
<textarea id="message"></textarea>
因此您只需使用document.getElementById("message")
或document.querySelector("#message")
选择它即可
而不是使用document.getElementsByClassname(classList)[0]
。