我写这个脚本来改变textarea的值,但我没有这样做.我的代码出了什么问题?
<html>
<head>
<script type="text/javascript">
document.getElementsByName("status").innerHTML = "hi";
document.getElementsByName("status").title= "hi";
document.getElementsByName("status").placeholder= "hi";
</script>
</head>
<body>
<textarea placeholder="What's on your mind?" onfocus="window.UIComposer && UIComposer.focusInstance("c4d981e9a2c98b0483252333");" name="status" id="c4d981e9a2c98b0483252333_input" title="What's on your mind?" class="DOMControl_placeholder UIComposer_TextArea">What's on your mind?</textarea>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果您尝试使用:
var textarea = document.getElementById('c4d981e9a2c98b0483252333_input');
textarea.value = 'hi';
Run Code Online (Sandbox Code Playgroud)
它应该工作.
否则,由于方式getElementsByName有效,您需要为调用提供一个索引(从零开始),以识别您要使用哪个textareas:
var textarea = document.getElementByName('status')[0]; // selects the first element of name 'status'
textarea.value = 'hi';
Run Code Online (Sandbox Code Playgroud)
两个问题
首先,document.getElementsByName返回NodeList(类似于数组),而不是单个元素.
其次,在元素实际存在之前,您不会延迟JS的执行.所以它无论如何都找不到它.
document.getElementsByName("status")[0]<script>元素使其出现在 textarea之后.我也不习惯使用innerHTML修改表单控件.我转而去value.
| 归档时间: |
|
| 查看次数: |
30698 次 |
| 最近记录: |