动态页面图片替换

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>
* {
margin: 0;
padding: 0;
}

img {
    width: 300px;
    height: 325px;
}

</style>

<body>
<img src="./img/1212.jpg" alt="0">
<p>asdfasdf </p>
<img src="./img/1212.jpg" alt="1">
<p>sdfasdfasdf</p>
<img src="./img/1212.jpg" alt="2">
<p>sdfasdfasdfasdf</p>
<p contenteditable="false">asdfasdfasdf</p>
</body>
<script>
window.onload = function () {
creatReplace()
function creatReplace() {
var img = document.getElementsByTagName('img')
var pS = document.getElementsByTagName('p')
var label = document.getElementsByTagName('label')
var nlabel, divS, divSs, inputS
for (var i = 0; i < img.length; i++) {
// 创建标签
nlabel = document.createElement('label')
divS = document.createElement('div')
inputS = document.createElement('input')
// 设置属性
divS.setAttribute('class', 'dw')
divS.style.position='relative'
divS.style.display='inline-block'
nlabel.setAttribute('for', 'album' + i + '')
nlabel.style.width = img[i].width + 'px'
nlabel.style.height = img[i].height + 'px'
nlabel.style.position = 'absolute'
nlabel.style.top = '0'
nlabel.style.left = '0'
inputS.id = 'album' + i + ''
inputS.name = 'file'
inputS.type = 'file'
inputS.accept = 'image/*'
inputS.style.display = 'none'

            // 添加标签
            divSs = img[i].parentNode.insertBefore(divS, img[i])
            divSs.appendChild(img[i])
            insertAfter(nlabel, img[i])
            insertAfter(inputS, label[i])

            // 替换图片
            inputS.onchange = function () {
                ImagePath = window.URL.createObjectURL(this.files[0]);
                this.parentNode.firstChild.src = ImagePath
            }
        }
        for (let j = 0; j < pS.length; j++) {
            pS[j].contentEditable = "true"
        }
        // 标签后面插入元素
        function insertAfter(newElement, targetElement) { 
            var parent = targetElement.parentNode; 
            if (parent.lastChild == targetElement) { 
                parent.appendChild(newElement, targetElement);
            } else {
                parent.insertBefore(newElement, targetElement.nextSibling);
            };
        }
    }


}

</script>

</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,151评论 0 2
  • 北京2018年4月1日上午,NBA常规赛勇士客战国王的比赛中,发生了令人痛心不已的一幕。比赛进行到第三节还有41...
    Curry_宇阅读 4,996评论 1 1
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,378评论 2 17
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,739评论 0 8
  • document.write(''); } if ( (document.cookie && document.c...
    一副怂样阅读 3,989评论 0 1