我在javascript上非常糟糕,我的代码由于某种原因无法运行。我收到错误
Uncaught TypeError: undefined is not a function js.js:2
cleaning js.js:2
onblur (index):11
js.js
function cleaning() {
var str = document.getElementByName("fitas").innerHTML;
str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
document.getElementByName("fitas").innerHTML = str;
}
HTML
<SCRIPT LANGUAGE="JavaScript" SRC="js.js"></SCRIPT>
<center>
<form method="post" action="check.php">
<h1>Enter your fit:</h1><br />
<textarea style="width: 500px; height: 400px;" name="fitas" class="text" placeholder="Input your fitting here" onblur="cleaning()"></textarea>
<br>
<input type="submit" name="check" class="btn btn-primary">
</form>
</center>
答案 0 :(得分:1)
getElementsByName
注意 s
,document.getElementByName
未定义。
那会得到一个nodeList,所以
function cleaning() {
var elem = document.getElementsByName("fitas")[0];
elem.value = elem.value.replace(/^.+?(<url=[^>]+>).+$/, '$1');
}
此外,你在90年代输入脚本标签的方式是popupar,这些天它全部小写,你不需要语言属性,而在HTML5中你不需要&# 39; t确实需要一个类型属性。
答案 1 :(得分:0)
function cleaning() {
var str = document.getElementByName("fitas").innerHTML;
str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
document.getElementByName("fitas").innerHTML = str;
}
应该
function cleaning() {
var str = document.getElementsByName("fitas").innerHTML;
str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
document.getElementByName("fitas").innerHTML = str;
}
不是getElementByName而是getElement [S] ByName
注意S
答案 2 :(得分:0)
尝试:
<script type="text/javascript" src="js.js"></script>
而不是:
<SCRIPT LANGUAGE="JavaScript" SRC="js.js"></SCRIPT>
答案 3 :(得分:0)
它是getElementsByName而不是getElementByName
此外,它返回一个数组,所以试试这个:
function cleaning() {
var str = document.getElementsByName("fitas")[0].innerHTML;
str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
document.getElementsByName("fitas")[0].innerHTML = str;
}
编辑:我在最后一行犯了一个错误 - 现在已经修好了。