【问题标题】:Jquery - returning value from an arrayJquery - 从数组返回值
【发布时间】:2013-09-24 13:03:51
【问题描述】:

Jfiddle 包含我的全部尝试:http://jsfiddle.net/MdWDP/

如您所见,我将一些文本/数字排列在一个数组中。

我想用它作为返回值而不是 "index+1"

$("#selectable").selectable({

    selected: function (event, ui) {
        $(ui.selected).addClass("ui-selected").siblings().removeClass("ui-selected");
        var labelArr = new Array("Name?", "Date?", "Else", "5", "10", "15", "20", "25", "50", "75", "100");
        var result = $("#select-result").empty();
        $(".ui-selected", this).each(function () {
            var index = $("#selectable li").index(this);
            result.append(index + 1);
            $("#description-name").val(labelArr[ui.value]);
            $("#test").val(index + 1);
        });
    }
});

【问题讨论】:

  • 返回值是什么?
  • @ExplosionPills 就像目前它返回“index + 1”,所以如果我选择
  • #5 它会返回 5,所以我想我可以创建一个数组,然后执行 Array[index+1]从数组中获取第 5 个值并返回它
  • ui.valueundefined 所以labelArr[ui.value] 也会返回undefined,这就是为什么#description-name 根本不会改变,但你也使用val() 而不是text() (如果这是你要求的)。
  • 标签: javascript jquery jquery-ui selectable


    【解决方案1】:

    你在这一行的做法是错误的:

    $("#description-name").val(labelArr[ui.value]);
    

    应该是

    $("#description-name").html(labelArr[index]);
    

    <span> 元素在 jQuery 中没有 $.fn.val 方法。 Documentation 说:
    .val() 方法主要用于获取 input、select 和 textarea 等表单元素的值

    另外,您的代码中的ui.valueundefined

    所以,here's your updated fiddle

    【讨论】:

    • 谢谢我之前有它作为 .val(labelArr[index+1]) 但我看到我的旧脚本使用 ui.value 认为这是一些特殊变量谢谢
    • 我的回答能解决您的问题吗?如果是这样,请善待并接受它。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签