使用jquery通过id获取值

时间:2014-11-01 12:46:10

标签: javascript jquery

此代码用于数据库托管的页面。页面有滑块,用户可从中选择所需的核心数和ram的上限和下限。滑块中的选定值正在工作,并以span id&s输出。然后,我想采用选定的值来计算价格。但是我无法取回价值。我将其分解为简单的部分,并意识到核心或内存没有返回值。当滑块更新页面时,我需要做什么来检索值?

 <script>
    function showValues(event, ui) {
        var values;
        if (!ui.values) {
            values = $("#" + event.target.id).slider("values");
        } 
        else {
            values = ui.values;
        }
        if (values[0] == values[1]) {
            return false;
        } 
        else {
            values[0] % 1 == 0;
            values[1] % 1 == 0;
            $("#" + event.target.id + "-valuemin").html(parseInt(values[0]));
            $("#" + event.target.id + "-valuemax").html(parseInt(values[1])); 
        }
    }

    $(document).ready(function() {
        var base = 24;
        var cores = parseInt($("#CoreSlider-valuemin").val()*5);
        var ram = parseInt($("#RanSlider-valuemin").val()*2) + parseInt($("#RanSlider-valuemax").val());
        var cost = parseInt(base) + parseInt(cores) + parseInt(ram);                
        $("#Cost").html(parseInt(cost));
    });
$(function() {$( "#RanSlider" ).slider({range: true,min: 1,max: 64,step: 1,values: [4, 16],slide: showValues,create: showValues,change: showValues});});
$(function() {$( "#CoreSlider" ).slider({range: false,min: 1,max: 16,step: 1,values: [2],slide: showValues,create: showValues,change: showValues});});

    </script>

2 个答案:

答案 0 :(得分:1)

val()不是可以从元素获取文本的函数(如果它不是输入或类似的东西)。 text()可以做到。看看这个小提琴:http://jsfiddle.net/bandrzejczak/jdf1a2ct/

编辑:让我重新说一下:你用什么来写东西(比如.text("a").html("b")),.val("c"),你可以用它来读取相同的东西元素,不使用参数(.text("a")写入和.text()阅读)

另外如果你想在每个滑块移动后计算成本,你应该将计算函数放在valueChange函数中。

当然有一个更好的方法可以做到这一点,而不使用帮助div,但是这个我可以用你所得到的最快的速度工作。

编辑:不要在parseInt上使用int,例如base变量。

答案 1 :(得分:0)

您的挑战似乎是将事件处理与滑块相关联。您现有的代码如下所示:

$(function() {
    $("#RanSlider").slider(
    {
        range: true,
        min: 1,
        max: 64,
        step: 1,
        values: [4, 16],
        slide: showValues,
        create: showValues,
        change: showValues
    });
});

您的代码会显示slidecreatechange的选项。这些都不是有效的选择。相反,您需要注册事件回调,例如:

$("#RanSlider").on("slide", showValues);
$("#RanSlider").on("create", showValues);
$("#RanSlider").on("change", showValues);

或更有效率:

$("#RanSlider").on(
{
    "slide": showValues,
    "create": showValues,
    "change": showValues
});