猿问

根据元素中的索引值将属性动态添加到 html 元素

设想:


如果 fileupload index 值为 0,则它必须在 fullHTML 中找到 fileindex=0 并动态添加更多属性。像 image-type = "png", image-timestamp="Wed Jul 22 13:48:30 EDT 2020"



fileupload.forEach(function (item, index) { 


var fullHtml = "<div id="comments-box" contenteditable="true" data-text="Enter comment">


    <a class="test-image test-upload" contenteditable="false" fileindex="0"

        image-title="great_life5.jpg" href="#" target="_blank">

        <span>great_life5.jpg</span></a>


    <a class="test-image test-upload" contenteditable="false" fileindex="1"

    image-title="greatlife_updated.png" href="#" target="_blank">

        <span>greatlife_updated.png</span></a>

</div>"


})



expected output: 


var fullHtml = "<div id="comments-box" contenteditable="true" data-text="Enter comment">


    <a class="test-image test-upload" image-id="39833" data-type="reviewImage" image-title="great_life5.jpg"

        image-timestamp="Wed Jul 22 13:48:30 EDT 2020" image-type="png" contenteditable="false" href="#"

        target="_blank"> great_life5.jpg</a>


    <a class="test-image test-upload" image-id="39834" data-type="reviewImage" image-title="greatlife_updated.png"

        image-timestamp="Wed Jul 22 13:48:30 EDT 2020" image-type="png" contenteditable="false" href="#"

        target="_blank">greatlife_updated.png</a>

</div>" 


慕森卡
浏览 132回答 1
1回答

料青山看我应如是

您可以通过创建一个 dom 元素来实现这一点,该元素包含您的 html 并使用 dom api 对其进行请求,这比像文本一样解析它更干净、更容易var fullHtml = `<div id="comments-box" contenteditable="true" data-text="Enter comment">&nbsp; &nbsp; <a class="test-image test-upload" contenteditable="false" fileindex="0"&nbsp; &nbsp; &nbsp; &nbsp; image-title="great_life5.jpg" href="#" target="_blank">&nbsp; &nbsp; &nbsp; &nbsp; <span>great_life5.jpg</span></a>&nbsp; &nbsp; <a class="test-image test-upload" contenteditable="false" fileindex="1"&nbsp; &nbsp; image-title="greatlife_updated.png" href="#" target="_blank">&nbsp; &nbsp; &nbsp; &nbsp; <span>greatlife_updated.png</span></a></div>`const container = document.createElement("div")container.innerHTML = fullHtml;[1,2].forEach((item, index) => {&nbsp; let e = container.querySelector(`a[fileindex='${index}']`)&nbsp; e.setAttribute('yourAttribute', 'yourValue');&nbsp; e.setAttribute('image-timestamp', new Date().toString())})console.log(container.innerHTML)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答