【发布时间】:2019-04-26 10:27:46
【问题描述】:
我使用过很多次 JAVA,但之前从未使用过 Javascript。我尝试了解它,现在我对这些功能有疑问。相同的功能具有不同的结果。此行函数之间的唯一区别:return joe;
在"rowSearch()" 函数中,这段代码在“循环”之外,而在"rowSearch2()" 中,这段代码在“循环”之内。
如果我调用 rowSearch2(),那么 JOE 变量每次都有返回值,但是当我调用 rowSearch() 函数时,有时没有任何返回值。也许我错过了或者我做错了什么,但我看不到。
非常感谢。
function rowSearch() {
var index, table = document.getElementById('table');
var joe = 1;
joe = 1;
var temp = '';
var temp2 = '';
for (var j = 1; j < table.rows.length + 1; j++) {
temp = table.rows[j].cells[0].innerHTML;
temp2 = document.getElementById('srch').value;
if (temp == temp2) {
j = table.rows.length + 1;
joe = 0;
}
}
return joe;
}
function rowSearch2() {
var index, table = document.getElementById('table');
var joe = 1;
joe = 1;
var temp = '';
var temp2 = '';
for (var j = 1; j < table.rows.length + 1; j++) {
temp = table.rows[j].cells[0].innerHTML;
temp2 = document.getElementById('srch').value;
if (temp == temp2) {
j = table.rows.length + 1;
joe = 0;
}
return joe;
}
}
<!DOCTYPE html>
<html>
<head>
<script>
function rowSearch() {
var index, table = document.getElementById('table');
var joe = 1;
joe = 1;
var temp = '';
var temp2 = '';
for (var j = 1; j < table.rows.length + 1; j++) {
temp = table.rows[j].cells[0].innerHTML;
temp2 = document.getElementById('srch').value;
if (temp == temp2) {
j = table.rows.length + 1;
joe = 0;
}
document.getElementById('demo4').innerHTML=joe;
}
}
</script>
</head>
<body>
Data: <input type="text" name="srch" id="srch" /><br/><br/>
<button onclick="rowSearch();">Check</button><br/><br/>
<table id="table" border="1">
<tr>
<th>Data</th>
</tr>
<tr>
<td>Data1</td>
</tr>
<tr>
<td>Data2</td>
</tr>
<tr>
<<td>Data3</td>
</tr>
</table>
<p id="demo"></p>
<p id="demo2"></p>
<p id="demo3"></p>
<p id="demo4"></p>
</script>
</body>
</html>
我想在表格中找到一个值(srch 输入)。如果它在表中,那么我将调用一个值为 JOE 的函数,否则调用另一个函数。
【问题讨论】:
-
能否也添加相应的HTML脚本,并制作一个sn-p,以便调试?
-
returnin 循环将终止它。因此,您的rowSearch2()将在一次迭代后终止循环并将joe的值发送给调用函数。在您的第一个函数rowSearch()中,您允许完成 for 循环,然后将joe的值发送给调用函数。
标签: javascript