你如何在jQuery中设置永久值

时间:2015-10-21 14:50:01

标签: javascript jquery html

我想用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时,每次按下按钮时,表单中的数据都会被重置

2 个答案:

答案 0 :(得分:2)

在函数中运行代码时,它会创建一个范围。您使用var语句定义的每个变量仅在该范围内可用。

要在当前范围之外创建用于变量的变量,请先声明变量而不预先放置var或直接写window.varname = valueHave 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'))