<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>moving word</title>
</head>
<body>
<p id="word">w3resource</p>
</body>
</html>
<script type="text/javascript" src="five.js"></script>
function MovingLetters() {
var text = document.getElementById("word").value;
var len = text.length;
var lastletter = text.charAt(len-1);
text = text.substring(0,len-1);
text = lastletter + text;
}
MovingLetters();
$(function() {
setInterval(MovingLetters, 1000);
});
控制台告诉我:
无法读取未定义的属性“长度”
不知道为什么它是未定义的,因为我在那之前定义了2行,而那个反映到在js脚本运行之前运行的html代码中的<p>
。有人可以帮忙吗?
答案 0 :(得分:2)
使用value
用于输入元素,您应该使用textContent
,innerText
或者如果您想使用html innerHTML
:
var text = document.getElementById("word").textContent;
function MovingLetters() {
var word = document.getElementById("word")
var text = word.textContent;
var len = text.length;
var lastletter = text.charAt(len - 1);
text = text.substring(0, len - 1);
text = lastletter + text;
word.textContent = text
}
MovingLetters();
setInterval(MovingLetters, 1000);
<p id="word">w3resource</p>
答案 1 :(得分:0)
你不希望你想要的值是什么叫做innerHTML。你可以通过document.getElementById("word").innerHTML.length
实现这一目标。