私は最近、私の個人的なプロジェクトで同様のことをしなければなりませんでしたが、私が書いていた機能を実際に使用することはありませんでしたが、使用したコードは次のとおりです。
function refactor() {
var array = jQuery.makeArray($('ul#remapped > li:not(.target)'));
var mappedArray = jQuery.map(array, function(i) {
var merged = $(i).find('ul.merge > li:not(.target) > span');
return {
column: $(i).children('span').text(),
merged: jQuery.map(jQuery.makeArray(merged), function(mi) { return { column: mi.innerText }; })
};
});
var xml = '<columns>';
jQuery.each(mappedArray, function(index, item) {
xml += '\n\t<column>';
xml += '\n\t\t<name>' + item.column + '</name>';
if (item.merged.length > 0) {
xml += '\n\t\t\t<merged>';
jQuery.each(item.merged, function(mindex, mitem) {
xml += '\n\t\t\t\t<name>' + mitem.column + '</name>';
});
xml += '\n\t\t\t</merged>';
}
xml += '\n\t</column>';
});
xml += '\n</columns>';
$('div#result').load('/Tools/Csv/Refactor', { mapping: xml });
}
基本的に、ユーザーは UI を使用して好きなようにドラッグ アンド ドロップし、必要な構造を作成します。次に、このメソッドを実行するボタンをクリックします。
$('ul#remapped') クエリは、新しい構造を含む (コード内の) 要素です。次に、DOM 構造に基づいて追加のクエリを実行し、DOM から必要な値を抽出し、 XML 文字列を生成し、サーバーにポストしました。
これはまさにあなたが必要としているものではないと確信していますが、必要に応じて変更できるほど十分に近いことを願っています.