我试图做一个简单的向上计数器。出于某种原因,我无法使用javascript来定位正确的元素。我目前正在尝试使用jQuery。
这是我的HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/go.js"></script>
</head>
<body>
<table>
<tr ><td ><button id="up" onclick="modCount(1)">2,3,4,5,6</button></td></tr>
<tr><td><h1><input id="count" value="0" /></h1></td></tr>
<tr ><td ><button id="down" onclick="modCount(-1)">10,J,Q,K,A</button></td></tr>
</table>
</body>
</html>
和我的go.js:
function modCount(val){
var CC = $("count").value;
alert($("count").value);
var NewCount = parseInt(CurrentCount,10) + val;
$("count").value = NewCount;
return NewCount;
};
我做错了什么?警报一直说$(&#34; count&#34;)的值未定义。
答案 0 :(得分:0)
更改
$("count")
到
$("#count")
...即。你的意思是按ID定位,这意味着为选择器添加#
使用jQuery,当出现问题时,总是让你的选择器成为你的第一个嫌疑人。您可以通过运行
来检查它们是否匹配任何内容alert($('your-selector-here').length);
如果它给出0
,则选择器错误,或者代码在元素位于DOM之前运行。
答案 1 :(得分:0)
你有很多错误。
var CC = $("count").value;
在jquery中按id进行定位时,前缀为#
,获取字段值的方法为val()
。改为
var CC = $("#count").val();
var NewCount = parseInt(CurrentCount,10) + val;
您调用变量CC
而非CurrentCount
。改为
var NewCount = parseInt(CC,10) + val;
(提供基数到parseInt
的好工作 - 那里有满分!)
$("count").value = NewCount;
再次提供哈希值,设置值的方法也是.val()
。改为
$("#count").val(NewCount);
return NewCount;
无需返回值,您永远不会使用它 - 只需删除此行。
工作样本:
function modCount(val){
var CC = $("#count").val();
var NewCount = parseInt(CC,10) + val;
$("#count").val(NewCount);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr ><td ><button id="up" onclick="modCount(1)">2,3,4,5,6</button></td></tr>
<tr><td><h1><input id="count" value="0" /></h1></td></tr>
<tr ><td ><button id="down" onclick="modCount(-1)">10,J,Q,K,A</button></td></tr>
</table>