从sortableJS后列表项的字符串已应用

问题描述 投票:0回答:2

我特林从列表中得到一个字符串已使用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," ");不给一个适当间隔字符串。为什么排序改变行为,我能做些什么来解决这个问题?欣赏任何回应,请

jquery-ui-sortable
2个回答
1
投票

为了让文字,我会创造一个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的可排序的使用它。


1
投票
$.map( $('li'), function (element) { return $(element).text() }).join(' ');

作品以获取列表项放入适当间隔串

© www.soinside.com 2019 - 2024. All rights reserved.