我编写此脚本来更改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>
答案 0 :(得分:5)
如果您尝试使用:
var textarea = document.getElementById('c4d981e9a2c98b0483252333_input');
textarea.value = 'hi';
它应该有用。
否则,由于getElementsByName
的工作方式,您需要为调用提供一个索引(从零开始),以识别您要使用哪个textareas:
var textarea = document.getElementByName('status')[0]; // selects the first element of name 'status'
textarea.value = 'hi';
答案 1 :(得分:5)
两个问题
首先,document.getElementsByName
返回一个NodeList(就像一个数组),而不是一个元素。
其次,在元素实际存在之前,您不会延迟JS的执行。所以它无论如何都找不到它。
document.getElementsByName("status")[0]
<script>
元素,使其在 textarea后显示为。我也不习惯使用innerHTML
来修改表单控件。我转而转而使用value
。
答案 2 :(得分:2)
<script type="text/javascript">
document.getElementsByName("status")[0].value = "hi";
</script>
答案 3 :(得分:0)
将此脚本放入正文
<script type="text/javascript">
document.getElementById("status").value= "hi";
</script>
将getElementsByName更改为getElementById
getElementsByName - &gt;返回元素数组 getElementById - &gt;返回单一控件..
然后将脚本放在body标签之间而不是标题.....
答案 4 :(得分:-1)
<html>
<head>
</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>
<script type="text/javascript">
document.getElementById("c4d981e9a2c98b0483252333_input").value = "hi";
document.getElementsByName("status")[0].value = "hi";
</script>
</body>
</html>