从网络服务获取数据,该网络服务以下面的格式显示
<ol>\r\n<li>Combine garlic, mustard, chili powder, cayenne pepper, salt and thyme in a small bowl.</li>\r\n</ol>
我一直在试图移除\ r \ n我的头发,但我似乎无法这样做。因为在元素之间而不是在内容中,大多数jquery函数都不起作用。我正在尝试类似的事情:
$("*").each(function () {
if ($(this).children().length == 0) {
$(this).html($(this).html().replace('<ol>\\r\\n<li>','<ol><li>'));
}
});
不起作用。有什么想法吗?
答案 0 :(得分:2)
您可以使用jQuery
解析它。
var data = $("<ol>\r\n<li>Combine garlic, mustard, chili powder, cayenne pepper, salt and thyme in a small bowl.</li>\r\n</ol>");
然后,您可以使用data
作为任何jQuery DOM包装器对象。它代表<ol>
。
答案 1 :(得分:2)
您可能需要使用正则表达式。
我没有测试过,但应该可以使用
$(this).html().replace( /[\r\n]/gm,'')
它应该删除html中每次出现的\ r \ n。
最终代码应如下所示
$("*").each(function () {
if ($(this).children().length == 0) {
$(this).html( $(this).html().replace( /[\r\n]/gm,'') );
}
});
<强>更新强>
要根据您的评论修复脚本,我认为最好的方法是将OL封装在容器中并解析其html。
<div id="container">
<ol>\r\n<li>Combine garlic, mustard, chili powder, cayenne pepper, salt and thyme in a small bowl.</li>\r\n</ol>
</div>
脚本
var container = $('#container');
container.html( container.html().replace( /[\r\n]/gm,'') );
答案 2 :(得分:0)
我编写了一个不整洁的解决方法。基本上获取ol中的所有文本,替换换行符并插入li作为替换。必须删除第一个和最后一个列表项,因为它是空的。不是最优雅的解决方案,但它的工作原理
var data = $("#tab-2 ol").text();
data = data.replace(/\\r\\n/gm, '<li>');
$("#tab-2 ol").html(data);
$("#tab-2 ol li:first-child").remove();
$("#tab-2 ol li:last-child").remove();