我有一个 mainWrap,其中内容是动态填充的。(有点像下面)
<div id="mainWrap">
<div style="z-index: 1001; height: 407px; width: 328px; top: 150px; left: 601.5px;" id="com-TMRJDOR2KOET3X6JPV6XGU0FB7RGJ926" class="textBox contentBox">
<div style="" class="editable"><p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, </p>
</div>
</div>
<div style="z-index: 1002; height: 616px; width: 288px; top: 29px; left: 3.5px;" id="com-UPWTMKZ7OUTN8KG2JEK47LNPN5JO261H" class="textBox contentBox">
<div style="" class="editable"><p>
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
</div>
</div>
mainWrap
的直接子级附加了一个 id。我想在将其保存到数据库之前删除 ids。现在我尝试了类似的操作
var getContent = $('#mainWrap');
var finalContent =getContent.clone().find('*').removeAttr('id');// 1
var finalContent=getContent.clone().children().removeAttr('id');//2
alert(finalContent.html());
在这两种情况下,我得到的输出如下:
<div style="" class="editable"><p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, </p>
</div>
外部 div 被删除,我只得到 1 个 div,而不是两个。 但是当我独立尝试它时,它可以与第二个一起使用。 Here's fiddle
我怎样才能做到正确。我不确定为什么它在应用程序中失败并独立工作!
谢谢您的时间
最佳答案
尝试在家长选择上更加具体。
试试这个:
$(document).ready(function () {
var getContent = $('#mainWrap');
var finalContent = $('div.textBox', getContent).clone();
finalContent.each(function () {
$(this).removeAttr('id');
});
console.log(finalContent[0]);
});
在这里查看 http://jsbin.com/ewosix/1/
$('button').click(function () {
var newContent = $(finalContent).first().wrap('<div class="addId" />');
newContent = $(newContent).parents( /*You can add specific selector for parents like div.textBox or leave it emty for all parents */ ).each(function (index, value) {
$(this).attr('id', index);
});
alert($(newContent).html());
});
关于php - 使用 jQuery/javascript 从 HTML 中删除 id 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499495/