我想用jQuery为div元素设置一个永久值;
完整的js文件:
$(function () {
var $a;
var $b;
$('button').click(function () {
$a = $('#a').val();
$b = $('#b').val();
var $big = getBigger($b, $a);
var $small = getSmaller($b, $a);
$('#bigger').text($big);
$('#smaller').text($small);
});
});
//a simple function for getting a bigger element
function getBigger(a, b) {
return a ^ (a ^ b) & -(a < b);
}
//a simple function for getting a smaller element
function getSmaller(a, b) {
return (a < b) ? a : b;
}
完整的html文件:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="style/style.css">
<title>Compare</title>
</head>
<body>
<form>
Enter a: <input type="number" id="a"><br/>
Enter b: <input type="number" id="b"><br/>
<button> Compare</button>
<div id="bigger"></div>
<div id="smaller"> </div>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="js/app.js"></script>
</body>
</html>
问题在于,当我离开范围时,变量会被销毁
PS。现在我意识到我的错误是当在<button>
元素中添加form
时,每次按下按钮时,表单中的数据都会被重置
答案 0 :(得分:2)
在函数中运行代码时,它会创建一个范围。您使用var
语句定义的每个变量仅在该范围内可用。
要在当前范围之外创建用于变量的变量,请先声明变量而不预先放置var
或直接写window.varname = value
。 Have another read on that topic
除此之外,在您的代码$('#bigger').text($big);
中,var $big
甚至都没有被定义,所以可能这就是问题所在。
设置元素文本独立于范围或变量。
答案 1 :(得分:-2)
试试这个
访问:
$("#a").data('value');
设置
$("#a").data('value' , 'whatevervalue');
在没有JQuery的情况下访问:
document.getElementById("a").dataset.value;
没有JQuery设置;
document.getElementById("a").dataset.value = "Some Value";
除非您使用:
,否则Div不能保留Value属性document.getElementById("a").setAttribute("value" , "val");
然后将其分配到div中:
$("#myDivElement").html($("#a").data('value'))