[英]Trying to make sense of [object HTMLCollection] From JavaScript .innerHTML Right Function?
我是JavaScript的新手。 我試圖獲得我認為與輸入表單元素一起使用的簡單“ onchange”事件,並讓JavaScript函數使用.innerHTML寫回輸入的值。
這是我的輸出結果:
名字 *
您好[object HTMLCollection]
我該如何處理返回“ [object HTMLcollection]”消息的變量,請明確回答:因為正如我所說,我是javascript新手。
這是我的代碼:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>onchange event Testing input text</title>
<script type="text/javascript">
<!--
function write_firstname()
{
var fnid = document.getElementById("fnm");
var fn = document.getElementsByName("first_name");
fnid.innerHTML = "Hello " + fn;
}
//-->
</script>
</head>
<body>
<form>
<!---->
<label for="first">First Name *</label>
<br />
<div class="form_indent">
<input id="first" type="text" name="first_name" onChange="write_firstname();" autofocus>
<p id="fnm"></p>
<br />
</div>
<!---->
<!---->
<div class="form_indent">
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</div>
<!---->
</form>
</body>
</html>
我知道這可能很簡單。 有人請向正確的方向踢我!
document.getElementsByName("first_name");
返回與選擇器nodeList匹配的元素的集合。
請注意getElements...
的s
getElements...
每次您看到時,都有可能匹配多個元素,並且會返回一個nodeList而不是單個DOM節點。
nodeList是一個包含元素的類似數組的對象,因此您嘗試將一個對象添加到字符串中,由於這是不可能的,javascript運行toString()
將nodeList轉換為字符串,並且字符串表示為[object HTMLCollection]
您可能要做的只是將元素傳遞給函數
<input id="first" type="text" name="first_name" onchange="write_firstname(this);" autofocus>
然后做
function write_firstname(elem) {
var fnid = document.getElementById("fnm");
fnid.innerHTML = "Hello " + elem.value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.