下面的 jQuery 代码发生了什么?
$("#myDiv").val($(".cssValue").sortable('serialize',{expression: 'textExp[#]'}));
我了解它可以对 div 内的 css 值进行排序,我愿意对此进行更正。
我对这部分感到困惑:
'serialize',{expression: 'textExp[#]'}
我了解它可以对 div 内的 css 值进行排序,我愿意对此进行更正。
.sortable('serialize',{expression: 'textExp[#]'})
实际上是 jQuery UI 语法,用于在先前实例化的 jQuery UI 小部件上调用方法。 也就是说,这条线实际上并没有使 .cssValue
可以排序——这是在之前的时间点完成的。该命令只是序列化元素。
这是完整的运行:
// select an element with id='myDiv'
$("#myDiv")
// note: .val() is used for setting the value of form fields, so this doesn't
// seem to make a lot of sense, given that #myDiv is presumably a div
.val(
// select an element with class='cssValue'
$(".cssValue")
// call the serialize method on this jQuery UI sortable element
// this will return a serialization of .cssValue - check out
// the methods tab here http://jqueryui.com/demos/sortable/
.sortable('serialize', { expression: 'textExp[#]'})
);
http://docs.jquery.com/UI/Sortable#method-serialize
签名: .sortable( "序列化" , [选项] ) 将可排序的项目 ID 序列化为表单/ajax 可提交字符串。调用此方法会生成一个哈希值,该哈希值可以附加到任何 url,以便轻松地将新的商品订单提交回服务器。
默认情况下,它通过查看“setname_number”格式中每个项目的 id 来工作,并输出类似“setname[]=number&setname[]=number”的哈希值。
您还可以提供选项哈希作为第二个参数来自定义函数的工作方式。可能的选项是:“key”(用您想要的任何内容替换part1[])、“attribute”(测试“id”之外的另一个属性)和“expression”(使用您自己的正则表达式)。
如果序列化返回空字符串,请确保 id 属性包含下划线。它们的格式必须为:“set_number” 例如,具有 id 属性 foo_1、foo_5、foo_2 的 3 元素列表将序列化为 foo[]=1&foo[]=5&foo[]=2。您可以使用下划线、等号或连字符来分隔集合和数字。例如 foo=1 或 foo-1 或 foo_1 全部序列化为 foo[]=1。