javascript在字符串中查找div id并删除整个div

时间:2018-10-13 10:52:39

标签: javascript jquery string find id

我有一个字符串,其中保存了一些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>

2 个答案:

答案 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一样。