【问题标题】:Retrieving href attribute检索 href 属性
【发布时间】:2012-10-13 19:41:50
【问题描述】:

用户以他想要的方式对列表对象进行排序,然后单击“保存”链接并将订单保存到数据库中(在 url 的帮助下)。在用户更改顺序之前,网址如下所示:index.php?type=list&action=saveNewListOrder&listId=24

当用户更改列表对象的顺序时,下面的函数会运行,并创建一个与 url 合并的列表对象字符串。

一切正常,除了用户第二次移动列表对象时,检索到的 url 已经包含带有列表对象的字符串(自上次移动以来)。每次用户移动列表对象时,url 都会增长。

在第三步之后,url 可以是这样的:

index.php?type=list&action=saveNewListOrder&listId=170&listOrder=772.773.775.774
.776&listOrder=772.775.773.774.776&listOrder=775.773.772.774.776

我曾想过使用子字符串(提取 url 的第一部分)并将 url 放在一个隐藏字段中,该字段每次都会检索并且永远不会更改。这两种方案都觉得没必要复杂,一定有更优雅的方案。

    $('#listElements').sortable({
        update: function(event, ui) {

            var order = '';
            var i = 0;
            $('.listObject li').each(function (e) {
                if (i != 0) {
                    order += '.';
                }
                order += $(this).attr('id');//.push($(this).attr('id'));
                i +=1;
            });

            var url = $('#newOrder').attr("href");

            url += "&listOrder=" + order;

            $('#newOrder').attr('href',url);
        }
    });

【问题讨论】:

  • 为什么不将列表顺序保存在变量中,直到用户实际点击保存。然后将其附加到 url。
  • 或为链接创建一个自定义属性并将其保存在那里?或 jquery.data() api.jquery.com/jQuery.data
  • 我同意@thescientist,但是,如果它对您有任何帮助,我有一个 jQuery 插件,可以让获取和操作基本 url 变得轻而易举。 See here my jsFiddle of it in action. See here my blog post on how to use it. 插件代码应该在这两个地方都可用,但我不能说我已经检查过以确保它们都是相同的版本,哈哈。我可怕的拖延症!
  • 数组不是比普通变量更好,所以你不必拆分,加入...?

标签: jquery url hyperlink concatenation href


【解决方案1】:

为什么不将列表顺序保存在变量中,直到用户实际点击保存。然后将其附加到 url。

【讨论】:

    【解决方案2】:

    你可以在设置#newOrder的href属性之前扔掉listOrder参数并追加新订单

    var url = $('#newOrder').attr("href");
    var arrurl = url.split('&listOrder=');
    url = arrurl[0];
    url += "&listOrder=" + order;
    $('#newOrder').attr('href',url);
    

    【讨论】:

    • 你可以像 jQuery('#listElements').sortable('toArray');按显示顺序获取 id 列表
    猜你喜欢
    • 2018-10-11
    • 1970-01-01
    • 2016-11-03
    • 2016-10-17
    • 2018-02-26
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多