我正在尝试使用函数.before()
为了分离 for-loop
生成的一些输入。为了使其工作,我必须使用变量作为引用来知道在哪里插入 <br>
。问题是它返回 Uncaught TypeError: undefined is not a function
我找不到任何文档可以阻止我这样做。
代码如下:
<textarea id="textareaString">0|1|2|3</textarea>
<br />
<button onClick="cut()">Cut!</button>
<div id="specials"></div>
function cut() {
var str = document.getElementById('textareaString').value;
var arrayOfStrings = str.split('|');
for(var i = 0; i < arrayOfStrings.length; i++) {
var legend = document.getElementById('specials');
var mo = document.createElement('input');
mo.setAttribute('type', 'text');
mo.setAttribute('size', '5');
mo.setAttribute('id', 'special' + (i+1));
mo.setAttribute('value', arrayOfStrings[i]);
legend.appendChild(mo);
}
console.log(arrayOfStrings);
arrayOfStrings.before('<br /><br />');
}
根据有问题的行是最后一行:arrayOfStrings.before('<br /><br />');
可以玩on this JSFiddle 。请考虑到我在这里删减了很多代码,并且我不能考虑使用 id
用作 .before()
引用的输入,它在这里可以工作,但不能使用完整的代码。如果你想查看的话,就是 in this JSFiddle (在这个中,我需要使用 |
在每次剪切后添加一个
)。
我到底错过了什么?这可能很愚蠢,但我就是找不到它。提前致谢!
最佳答案
您可能正在尝试使用 .before()来自 JQuery
由于您没有使用 jQuery 对象,因此您将无法访问 .before。
此外,您还可以采取var legend = document.getElementById('specials');
脱离你的循环。
如果'<br /><br />'
是数组中的文本,您可以执行 arrayOfStrings.indexOf('<br /><br />')
找到字符串的位置,然后使用 .slice
以获得您正在搜索的部分。
关于javascript - var.before ('<br>' );返回 "undefined is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170638/