我特林从列表中得到一个字符串已使用jQuery UI的排序使用一个简单的列表排序之后(不排序)
<ul id = "description">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
和应用
$('#description').text().replace(/(\r\n|\n|\r)/gm," ");
我得到:一二三但是,如果我做了列表排序和移动项目,并使用
function getOrder() {
alert($("#description").html());//gives a correct html ul
alert($("#description").text());// no spaces between words
var ans = $('#description').text().replace(/(\r\n|\n|\r)/gm," ");
alert("You got " + ans)
};
输出变化三个twoone或threetwoone - 间距搞砸。 $("description").html()
显示,HTML是正确的(风格=“”被添加到L1标签出于某种原因),但$('#description').text().replace(/(\r\n|\n|\r)/gm," ");
不给一个适当间隔字符串。为什么排序改变行为,我能做些什么来解决这个问题?欣赏任何回应,请
为了让文字,我会创造一个toString功能:
function toString(element) {
var children = element.children;
var str = '';
for (var i = 0; i < children.length; i++) {
str += (!i ? '' : ' ') + children[i].textContent;
}
return str;
}
然后调用与传递作为参数列表的HTML元素(不是jQuery的对象)的功能。
该解决方案不使用jQuery的,所以你可以SortableJS或jQuery的可排序的使用它。
$.map( $('li'), function (element) { return $(element).text() }).join(' ');
作品以获取列表项放入适当间隔串