繁体   English   中英

在附加到DOM之前操作html

[英]manipulate html before append to DOM

 $(document).ready(function(){ var x = '<div><span></span><div id="container"><span>one</span><span class="target"></span></div></div>'; console.log($(x).find('#container').get(0)); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

我能够获得容器块,但是如何删除.target span

如果class.target相匹配,您是否要删除整个元素? 尝试这个:

$(document).ready(function(){
    var x = $('<div><span></span><div id="container"><span>one</span><span class="target"></span></div></div>');
    x.find('.target').get(0).remove();
    console.log(x.html());
});

这是一个小提琴


编辑

由于x.html()去除了根元素(即<div></div> ),如果您想获取完整的HTML字符串,则可以采用以下解决方案。

$(document).ready(function(){
    var x = $('<div><span></span><div id="container"><span>one</span><span class="target"></span></div></div>');
    x.find('.target').get(0).remove();
    x = x.wrap('<div>').parent().html();
    console.log(x);
});

更新小提琴


编辑2

如果有多个.target ,请说出以下字符串:

<div><span></span><div id="container"><span>one</span><span class="target"></span><span class="target"></span><i class="target"></i></div></div>

您可以考虑删除get(0)

$(document).ready(function(){
    var x = $('<div><span></span><div id="container"><span>one</span><span class="target"></span><span class="target"></span><i class="target"></i></div></div>');
    x.find('.target').remove();
    x = x.wrap('<div>').parent().html();
    console.log(x);
});

再次更新了小提琴

请尝试以下操作:

$(x).find(".target").remove();

你可以试试这个

$(x).find(“ span.target”);

见下文。

仅供参考 -目标类的元素内部没有跨度...所以执行'.target span'有点没有意义

var x = '<div><span></span><div id="container"><span>one</span><span class="target"></span></div></div>';

var elem = $(x).find("#container").parent();
elem.find('.target').remove();

尝试:

var x = '<div><span></span><div id="container"><span>one</span><span class="target"></span></div></div>';

var elem = $(x).find("#container").parent();
elem.find('.target').remove();
var div = $('<div>').append(elem).html();
console.log(div);

http://jsfiddle.net/8dh3bze7/

这应该工作:

 $(document).ready(function() {
  var x = '<div><span></span><div id="container"><span>one</span><span id="target">ssss</span></div></div>';
  var y = $(x).find("#target").remove().text();
  //$(x).find(".target").remove();

    $('#new').append( "<p>Test</p>" + y);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM