Javascript / jquery将文本更改为标记

时间:2018-03-25 12:21:45

标签: javascript jquery

我尝试在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;

页面上的文本更改(可视化),但源代码中没有更改,如何修复它?

3 个答案:

答案 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;

<强>段:

&#13;
&#13;
<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;
&#13;
&#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]