1

我有以下 jsfiddle 我试图序列化一个类:

HTML:

<content>
<div class="portlet portlet_1 portlet_content_1 new">some content here</div>
<div class="portlet portlet_1 portlet_content_1 new">some content here</div>
<div class="portlet portlet_1 portlet_content_1 new">some content here</div>
<div class="portlet portlet_2 portlet_content_2 new">some content here</div>
<div class="portlet portlet_2 portlet_content_2 new">some content here</div>
<div class="portlet portlet_3 portlet_content_3 new">some content here</div>
</content>

<button>Serialize</button>​

JS:

$("content").sortable();

$("button").on("click", function() {
    var data = $("content").sortable("serialize", {
        key: "item",
        attribute: "class"
    });
    alert(data);
});​

http://jsfiddle.net/WTTsB/2/

在警报中,我应该得到:

项目=1&项目=1&项目=1&项目=2&项目=2&项目=3

我不知道如何处理这个问题,因为每个 div 标签都有多个类。

有人可以帮我吗?

4

2 回答 2

0

这样做:http: //jsfiddle.net/phenomnomnominal/WTTsB/5/

<content>
    <div class="new portlet portlet_1 portlet_content_1">some content here</div>
    <div class="new portlet portlet_1 portlet_content_1">some content here</div>
    <div class="new portlet portlet_1 portlet_content_1">some content here</div>
    <div class="new portlet portlet_2 portlet_content_2">some content here</div>
    <div class="new portlet portlet_2 portlet_content_2">some content here</div>
    <div class="new portlet portlet_3 portlet_content_3">some content here</div>
</content>

可排序:

默认情况下,它通过以“setname_number”格式查看每个项目的 id 来工作,并且 > 它会输出一个类似于“setname[]=number&setname[]=number”的哈希值。

这必须通过某种字符串操作发生,因此它不是得到“1”,而是返回“1 new”。重新排序类意味着您的 CSS 等将保持不变,但该函数可以正确读取属性。

于 2012-06-20T12:42:01.720 回答
0

您可以按照 phenomnomnominal 所说的那样做,因为序列化程序方法不处理空间,它无法猜测它必须解析哪个类,因此它会解析它识别的最后一个类。但是你可以用你自己的正则表达式强制它,但我找不到任何文档,仍然应该这样调用:

var data = $("content").sortable("serialize", {
    key: "item",
    attribute: "class",
    expression: /(.+)_(.+)/
});

第一组是你的关键属性,第二组是你的价值;这个解析类是这样的:

class="myclass_234"

到:

item=234
于 2012-06-20T12:50:27.270 回答