使用jquery序列化div中的所有id
我正在尝试在CMS上创建页面拖放function的重新排序。 由于某些页面有子页面,因此我们在列表中嵌套了很多列表。 代码示例:
$(document).ready(function(){ $(function() { $('#contentLeft ul').sortable({ update: function() { var order = $('#contentLeft ul').sortable('serialize'); alert(order); } }); }); }); - Test
- Nested one
- nested 2
- Nested 6
- Test
- Test
在上面的例子中,当我移动并序列化ul时,我得到返回的顶级列表元素列表(page [] = 1,page [] = 4,page [] = 5)。 我需要的是它序列化所有的li标签,包括子li标签,得到类似的东西(page [] = 1,page [] = 20,page [] = 30,page [] = 40,page [ ] = 4,页面[] = 5)。
我试过很简单地应用序列化
但没有运气。
谁能指出我正确的指示?
非常感谢
$(function() { $('#contentLeft ul').sortable({ update: function() { var order3 = []; $('#contentLeft ul li').each(function(){ order3.push($(this).attr('id').replace(/_/g, '[]=')) }); alert(order3.join('&')); } }); });
试试这里: http : //jsfiddle.net/MXCZx/1/
或者你可以这样做:
// serialize input elements within a specific #id $('#id :input').serialize(); // serialize a specific element in the form $('input[name=inputName]').serialize();
几天前为我自己做的:
function serializeUL(ul){ var children = {}; $(ul).children().each(function(){ var li = $(this), sub = li.children('ul'); children[this.id] = sub.length > 0 ? serializeUL(sub) : null; }) return children; }
serializeUL(’#sitemap’)//将返回JSON
{ "page_1": { "page_20":null, "page_30":null, "page_40":null }, "page_4":null, "page_5":null }
比特扩展使用示例 :
没有forms使用。
$(document).ready(function () { //select html element $('li').click(function () { $(this).toggleClass('selected'); if ($('li.selected').length == 0) $('.select').removeClass('selected'); else $('.select').addClass('selected'); counter(); }); //ajax send id html element $(document).on('click', 'li', function () { $(this).toggleClass("check"); var form = document.querySelectorAll('li.selected'); //select the need classes var id = {};//empty array for (var i = 0; i < form.length; i++) { id[i] = form[i].id; //fill the array } $.ajax({ url: "/site/search", type: 'post', dataType: "json", data: {"selected": id}, success: function(data, response, textStatus, jqXHR) { console.log(data); } }); return false; }); });