如何从这些对象中获取此值

时间:2015-06-16 13:26:33

标签: javascript jquery jquery-ui

我使用这些调用在控制台中以两种不同的方式打印对象:

console.log(ui.handle)
console.log($(ui.handle))

console.log(ui)打印出来:

enter image description here

console.log($(ui.handle))打印出来像这样:

enter image description here

我需要从其中一个中获得一个共同的“事物”价值。在第一个我需要数据值。因此,我需要一种从中获取12:00的方法。

从第二点开始,我需要获得的这个“东西”/值超过1个点。  1.在属性下 - >数据值 - >它是nodeValue,textContent和value  2.在数据集下 - >价值是12:00 AM

我在打印完对象后尝试执行以下操作,但没有得到正确的值:

    console.log(ui.handle.attributes.getNamedItem("data-value"))
    console.log($(ui.handle).data('value'))
    console.log(ui.handle.dataset["value"])

有人请理解我想要得到的东西并帮助我。

这是我的JS代码初始化滑块:

$(".pct-slider#" + sliders[1])
.customSlider({
    min: 0,
    max: 1440,
    step: 15,
    range: false,
    ticks: true,
    values: initialValues,
    create: function (event, ui) {
        $.each( initialValues, function(i, v){
            updateValue({
                value: v,
                handle: $(".pct-slider#" + sliders[1]).find('.ui-slider-handle').eq(i) 
            });
        });
    },
    start: function(event, ui) {
        //console.log(event)
        console.log(ui.handle)
        console.log($(ui.handle))
        console.log($(ui.handle).data('value'))
        console.log(ui.handle.dataset["value"])
        console.log(" ")
        console.log(" ")
        var curHandles = $(".pct-slider#tuesdaySlider").find('.ui-slider-handle')
        var dataValue
        $.each(curHandles, function(i, v){
            dataValue = $(".pct-slider#" + sliders[1]).find('.ui-slider-handle').eq(i).attr('data-value')
            console.log(ui.handle.dataset.value + " " + dataValue)
            if (ui.handle.dataset.value == dataValue) {
                var last = $($(".pct-slider#" + sliders[1]).customSlider('values')).last()[0]
                $(".pct-slider#" + sliders[1]).customSlider('addValue', last + 15)
                return false
            } 
        })
        console.log("HELLO " + $(ui.handle).data('value'))

    },
    slide: function (event, ui) {
        resize_colors(sliders[1]);
        var handleIndex = $('a', event.target).index(ui.handle),
            curr = ui.values[handleIndex],
            next = ui.values[handleIndex + 1] - 15,
            prev = ui.values[handleIndex - 1] + 15;

        if (curr > next || curr < prev) {
            return false;
        }

        updateValue(ui);
        //positionSelects();
    },
    stop: function(event, ui){
        resize_colors(sliders[1]);
    }  
});

****注意****停止功能中的调用console.log(ui.handle.dataset [“value”])会给我12:00 AM,但我需要提取此值start函数根据值阻止滑动。

3 个答案:

答案 0 :(得分:1)

尝试

$(ui.handle)[0].dataset.value

答案 1 :(得分:0)

获取ui.handle属性

console.log(ui.handle.attr('data-value'));

答案 2 :(得分:0)

尝试调用$(ui.handle).attr('data-value')时获取错误值的主要原因是您尝试读取滑块的start事件中的值,按定义{{1} }

参考:http://api.jqueryui.com/slider/

您可以做的是,您可以尝试读取滑块的Triggered when the user starts sliding.事件中的值。

jQueryUi Slider Stop Event handler

JS CODE:

stop

快乐编码:)