这是我的for循环:
function ubbify(){
var inputTextStr = document.getElementById("mytext".value);
// write the logic for ubbify
//document.getElementById("demo").innerHTML = inputTextStr;
for (var i = 0; i < inputTextStr.length(); i++) {
console.log("Character: " + inputTextStr[i]);
document.write(inputTextStr[i]);
console.log(i);}
这是我的HTML:
<form>
Enter text here:
<br>
<input type="text" name="my-text">
<button type="button" onclick="ubbify('my-
text'.toString().value)">Submit</button>
我正在尝试创建一个字符串,而不是一个数组。在控制台上它返回:无法返回null的属性'length'。我不确定这意味着什么。请帮忙!
答案 0 :(得分:3)
因为document.getElementById(&#34; mytext&#34; .value)返回null,这是因为DOM中没有ID等于&#34; mytext&#34;的元素。值。
我想你想要
var inputTextStr = document.getElementById("my-text").value;
答案 1 :(得分:1)
您需要将该属性放在方法之外(并使用my-test
作为字符串):
var inputTextStr = document.getElementById("my-text").value;
// ^
除了使用lenght属性之外,我建议在ubbify
函数的调用中使用if,因为它允许在函数内部使用它进行进一步处理。输入需要id
属性。
function ubbify(id) {
var inputTextStr = document.getElementById(id).value;
for (var i = 0; i < inputTextStr.length; i++) {
console.log("Character: " + inputTextStr[i]);
}
}
&#13;
<form>
Enter text here: <br>
<input type="text" id="my-text"> <button type="button" onclick="ubbify('my-text')">Submit</button>
</form>
&#13;