简体   繁体   English

将Javascript方法“ createElement”,“ appendChild”,“ setAttribute”更改为Jquery

[英]Changing Javascript methods “createElement”, “appendChild”, “setAttribute” to Jquery

I'm having hard times when I try change javascript method createElement, appendChild, setAttribute to Jquery. 当我尝试将javascript方法createElement,appendChild,setAttribute更改为Jquery时,我遇到了困难。 I got function called "showThumbnail" which shows a thumbnail of newly uploaded img. 我得到了一个名为“ showThumbnail”的函数,该函数显示了新上传的img的缩略图。 I have to change it's javascript code to JQuery. 我必须将其JavaScript代码更改为JQuery。 It's easy when I have to replace "getElementById" method but the stairs begin when I dealing with "createElement" and when I try to add attributes to new object, innerHTML and its parents. 当我不得不替换“ getElementById”方法时很容易,但是当我处理“ createElement”并尝试向新对象,innerHTML及其父级添加属性时,楼梯就开始了。 Here is showThumbnail function 这是showThumbnail函数

function showThumbnail(files) {
    var file = files[0]

    //var thumbnail = document.getElementById("thumbnail");
    var $thumbnail = $('#thumbnail').get(0);

    var pDiv = document.createElement("div");
    var image = document.createElement("img");
    var div = document.createElement("div");


    pDiv.setAttribute('class', 'pDiv');
    $thumbnail.appendChild(pDiv);


    image.setAttribute('class', 'imgThumbnail');
    pDiv.appendChild(image)

    div.innerHTML = "X";
    div.setAttribute('class', 'closeDiv');
    pDiv.appendChild(div)

    image.file = file;
    var reader = new FileReader()
    reader.onload = (function (aImg) {
        return function (e) {
            aImg.src = e.target.result;
        };
    }(image))
    var ret = reader.readAsDataURL(file);
    var canvas = document.createElement("canvas");
    ctx = canvas.getContext("2d");
    image.onload = function () {
        ctx.drawImage(image, 100, 100);
    }
}

This is how it work in JFIDDLE: http://jsfiddle.net/r0taz01L/6/ 这就是在JFIDDLE中的工作方式: http : //jsfiddle.net/r0taz01L/6/

I was thinking about this 我在想这个

var $image = $("<img>", { class: "imgThumbnail" });
var $pDiv = $("<div>", { class: "pDiv" });        
var $div = $("<div>", { class: "closeDiv" });

$thumbnail.append($pDiv);
$pDiv.append($image);
$pDiv.append($div);

What do You think? 你怎么看?

I think it should be like this. 我认为应该是这样。

var $thumbnail = $('#thumbnail').get(0);

var $image = $("<img>", {
    class: "divThumbnail"
});
var $pDiv = $("<div>", {
    class: "divThumbnail"
});
var $div = $("<div>", {
    class: "closeDiv"
}).html('X');

$pDiv.append($image,$div).appendTo($thumbnail);
var reader = new FileReader();
var ret = reader.readAsDataURL(file);
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
reader.onload = function (e) {
    $image[0].src = e.target.result;
}
$image.on('load', function () {
    ctx.drawImage($image[0], 100, 100);
})

Demo 演示版

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM