จะสร้างแท็ก img ใหม่ด้วย JQuery ด้วย src และ id จากออบเจ็กต์ JavaScript ได้อย่างไร


87

ฉันเข้าใจ JQuery ในแง่พื้นฐาน แต่ฉันยังใหม่อยู่มากและสงสัยว่านี่เป็นเรื่องง่ายมาก

ฉันมี image src และ id ของฉันในการตอบสนอง JSON (แปลงเป็นวัตถุ) ดังนั้นค่าที่ถูกต้องใน responseObject.imgurl และ responseObject.imgid และตอนนี้ฉันต้องการสร้างภาพด้วยและต่อท้าย div (เรียกมันว่า<div id="imagediv">ฉันติดอยู่เล็กน้อยในการสร้างแบบไดนามิก<img src="dynamic" id="dynamic">- ตัวอย่างส่วนใหญ่ที่ฉันเห็นเกี่ยวข้องกับการแทนที่ src ในรูปภาพที่มีอยู่ แต่ฉันไม่มีรูปภาพอยู่แล้ว

คำตอบ:


138

ใน jQuery องค์ประกอบใหม่สามารถสร้างได้โดยส่งสตริง HTML ไปยังตัวสร้างดังที่แสดงด้านล่าง:

var img = $('<img id="dynamic">'); //Equivalent: $(document.createElement('img'))
img.attr('src', responseObject.imgurl);
img.appendTo('#imagediv');

@ a7omiton ดูแหล่งที่มาผ่านเมนูบริบทหรือผ่านทางผู้ตรวจสอบ? เมนูบริบท (หรือ Ctrl + U) แสดงข้อมูลที่ได้รับจากเซิร์ฟเวอร์โดยไม่มีการเปลี่ยนแปลงที่ทำโดย JavaScript ใช้ตัวตรวจสอบ DOM เพื่อดู HTML ที่ใช้งานอยู่ของเอกสารที่มีการเปลี่ยนแปลงจริง
Rob W

อ๊ะขอโทษที่ฉันลบความคิดเห็น: / มันปรากฏในเครื่องมือ dev ตอนนี้หน้าถูกแขวนเนื่องจากปัญหา jquery map 404
a7omiton

คุณพูดถูก แต่ภาพไม่ปรากฏในหน้าแหล่งที่มา (ctrl + u)
a7omiton

@ a7omiton คุณสามารถปิดใช้งานคำเตือน 404 เกี่ยวกับ jquery.min.map ได้โดยคลิกที่ไอคอนรูปเฟืองที่มุมล่างขวาและปิดใช้งานตัวเลือก "เปิดใช้งานแผนที่ต้นทาง"
Rob W

ใช่ฉันแค่ดูวิธีแก้ปัญหาโดย paul_irish ( stackoverflow.com/questions/18365315/… ) ขอบคุณที่ :)
a7omiton


17

คุณบันทึกไบต์โดยหลีกเลี่ยงการ.attrรวมกันโดยส่งผ่านคุณสมบัติไปยังตัวสร้าง jQuery :

var img = $('<img />',
             { id: 'Myid',
               src: 'MySrc.gif', 
               width: 300
             })
              .appendTo($('#YourDiv'));

2

สำหรับผู้ที่ต้องการคุณสมบัติเดียวกันใน IE 8 นี่คือวิธีที่ฉันแก้ไขปัญหา:

  var myImage = $('<img/>');

               myImage.attr('width', 300);
               myImage.attr('height', 300);
               myImage.attr('class', "groupMediaPhoto");
               myImage.attr('src', photoUrl);

ฉันไม่สามารถบังคับให้ IE8 ใช้วัตถุในตัวสร้างได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.