按类Jquery find()元素然后删除它

时间:2011-08-16 23:47:37

标签: jquery find

我正在尝试编辑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>';

由于

4 个答案:

答案 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元素放入ul1ul2。然后,要获取html字符串,请使用.outerHTML属性。

由于Firefox不支持outerHTML,因此您需要进行黑客操作才能使其符合浏览器标准。

示例输出: http://jsfiddle.net/bjgLV/

答案 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();
相关问题