字符串到jQuery对象,如何删除元素

字符串到jQuery对象,如何删除元素,jquery,Jquery,我试图操作文本区域(不是页面的一部分)中的一些html,但我希望能够在其上执行jQuery函数 在这里,我试图删除attr'my_id'为1234的div,但结果数据保持不变 var data = "<div>something<div my_id='1224'>blah</div><div my_id='1234'>xx123</div></div>"; var id = '1234'; $(data).remove(

我试图操作文本区域(不是页面的一部分)中的一些html,但我希望能够在其上执行jQuery函数

在这里,我试图删除attr'my_id'为1234的div,但结果数据保持不变

var data = "<div>something<div my_id='1224'>blah</div><div my_id='1234'>xx123</div></div>";

var id = '1234';

$(data).remove('[my_id="'+id+'"]');

alert($(data).html());
var data=“somethingblahxx123”;
变量id='1234';
$(数据)。删除(“[my_id=“”+id+”);
警报($(data.html());
显然,只是使用警报进行调试。

编辑

删除非dom元素的dom遍历

使用数据前缀在元素上放置自定义属性:

<div data-my_id='1224'
或者更简单地说,只需在目标div上使用常规id即可:

 <div id='1224'
var data=“somethingblahxx123”;
变量id='1234';
var$data=$(数据);//从字符串创建元素,并缓存它们
$data.find(“[my_id=“”+id+“]]”)。remove();//查找并删除嵌套元素
警报($data.html());//警告生成的HTML
  • 您给了
    .remove()
    一个选择器,它只对顶级元素起作用。目标元素是嵌套的

  • 当您执行
    alert($(data.html())时,您使用的是未修改的原始字符串。您需要创建元素,引用jQuery对象,进行操作,然后使用相同的jQuery对象查看结果


  • 在回答之前你测试过了吗?我想我没有经过足够的深思熟虑就进入了我的第一个回答,但我必须-1这个。您正在尝试进行DOM选择以查找不在DOM中的元素。@RightSaidFred-您是对的,我已经解决了这个问题,但我认为我给他的关于使用自定义属性的建议很好。谢谢各位,为什么我的自定义属性选择器使用不正确?或者这仅仅是在前面加上“div”时更加具体的问题?顺便说一句,让id以整数开头不是个好主意。@Interstarr\u Coder:这些不是id属性。它们是定制的在这种情况下,他应该使用data属性。@Interstarr_Coder:当然,这是个好主意,因为它是有效的HTML5。您的问题已经解决了:
     <div id='1224'
    
    $(data).find('#' + id).remove();
    
    var data = "<div>something<div my_id='1224'>blah</div><div my_id='1234'>xx123</div></div>";
    
    var id = '1234';
    
    var $data = $(data);  // create elements from the string, and cache them
    
    $data.find('[my_id="'+id+'"]').remove(); // find and remove the nested element
    
    alert($data.html());  // alert the resulting HTML