我正在尝试编辑var中的html。我想将带有“文件”类的UL移动到它自己的var,然后将其从数据变量中删除。
到目前为止我有这个但做错了。我似乎无法理解它。
var data = '<ul class="dirs"><li class="d"><a href="#" rel="/Games/">Games</a></li><liclass="d"><a href="#" rel="/Log/">Log</a></li></ul><ul class="files"><li class="f"><a href="#">fubar.txt</a></li><li class="f"><a href="#">fubar2.txt</a></li></ul>';
var files = $(data).find("UL.files").html();
预期结果:
data = '<ul class="dirs"><li class="d"><a href="#" rel="/Games/">Games</a></li><li class="d"><a href="#" rel="/Log/">Log</a></li></ul>';
files = '<ul class="files"><li class="f"><a href="#">fubar.txt</a></li><li class="f"><a href="#">fubar2.txt</a></li></ul>';
由于
答案 0 :(得分:2)
您无法修改字符串,但可以创建新字符串。
var data = '<ul class="dirs"><li class="d"><a href="#" rel="/Games/">Games</a></li><liclass="d"><a href="#" rel="/Log/">Log</a></li></ul><ul class="files"><li class="f"><a href="#">fubar.txt</a></li><li class="f"><a href="#">fubar2.txt</a></li></ul>';
var ul1 = $(data).filter('ul')[0];
var ul2 = $(data).filter('ul')[1];
var files1 = ul1.outerHTML || $('<div>').append(ul1).html();
var files2 = ul2.outerHTML || $('<div>').append(ul2).html();
这会将新的UL元素放入ul1
和ul2
。然后,要获取html
字符串,请使用.outerHTML
属性。
由于Firefox
不支持outerHTML
,因此您需要进行黑客操作才能使其符合浏览器标准。
答案 1 :(得分:0)
我发现$(data)
没有生成你想要的整个HTML。尝试运行$(data).html()
输出:"<li class="d"><a href="#" rel="/Games/">Games</a></li><liclass="d"><a href="#" rel="/Log/">Log</a></liclass="d">"
答案 2 :(得分:0)
看看这个:http://jsfiddle.net/kcAn3/
你之前的代码dint通过w3c验证方案,我猜jquery帐户
答案 3 :(得分:0)
试试这个
var data = '<ul class="dirs"><li class="d"><a href="#" rel="/Games/">Games</a></li><liclass="d"><a href="#" rel="/Log/">Log</a></li></ul><ul class="files"><li class="f"><a href="#">fubar.txt</a></li><li class="f"><a href="#">fubar2.txt</a></li></ul>';
var $uls = $(data).filter("ul").wrap("<div>");
data = $uls.first().parent().html();
file = $uls.last().parent().html();