我有一个字符串,其中保存了一些DOM html,其中有一个带有静态id =“ myId”的div,它没有innerHTML但设置了动态宽度值。
示例:
myString = "<div class="class">blahblah</div><div id="myId" width="42.584px"></div>"
如何创建一个新的相同字符串,将整个<div id="myId" width="42.584px"></div>
截断?问题是width=""
的值一直都在变化,所以我不能做.replace
。
编辑:保存在字符串中的html看起来像这样(并且div的数量可以变化,但是显然只有一个提到了myId
div):
<div id="firstId"></div>
<div id="div0" class="div-class">
<span class="" onclick="clickFunctionTwo()">text div 0</span>
<span class="" id="fasdf"></span>
<span id="btnClose"><img src="close.svg" class="" onclick="clickFunction()"></span>
<div id="myId" class="" style="width: 59.5312px;"></div>
</div>
<div id="div1" class="div-class">
<span class="" onclick="clickFunctionTwo()">text div 1</span>
<span class="" id="eyuacv"></span>
<span id="btnClose"><img src="close.svg" class="" onclick="clickFunction()"></span>
</div>
<div contenteditable="true" id="lastId" style="height:18px;" onkeydown="myFunction()"></div>
答案 0 :(得分:1)
您可以从该字符串创建jQuery元素,删除#myID
div,然后获取新的HTML:
var myString = `
<div id="firstId"></div>
<div id="div0" class="div-class">
<span class="" onclick="clickFunctionTwo()">text div 0</span>
<span class="" id="fasdf"></span>
<span id="btnClose"><img src="close.svg" class="" onclick="clickFunction()"></span>
<div id="myId" class="" style="width: 59.5312px;"></div>
</div>
<div id="div1" class="div-class">
<span class="" onclick="clickFunctionTwo()">text div 1</span>
<span class="" id="eyuacv"></span>
<span id="btnClose"><img src="close.svg" class="" onclick="clickFunction()"></span>
</div>
<div contenteditable="true" id="lastId" style="height:18px;" onkeydown="myFunction()"></div>`;
var myNewString = $('<div>').append(myString).find('#myId').remove().end().html();
console.log(myNewString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:0)
也许您可以尝试以另一种方式构建该字符串,例如:
var myArray = [
"<div class="class">blahblah</div>",
"<div id="myId" width="42.584px"></div>"
]
您可以使用以下命令构建字符串:
var myString = myArray.join("")
然后在myArray [0 ... n]上进行更改。因此,删除单个数组位置就像删除div一样。