เขียนเว็บไซต์ โดยใช้ JavaScript เพียวๆ

#javascript

#พื้นฐานการเขียนเว็ปไซต์

code หน้าเว็ปไซต์แสดงสินค้า เขียนด้วย javascript dom และตกแต่งด้วย css โดยไม่ใช้ html

แน่นอนครับ! การสร้างโครงสร้างเว็บไซต์แสดงสินค้า โดยไม่ใช้ HTML โดยตรง แต่ใช้ JavaScript DOM ในการสร้างองค์ประกอบทั้งหมด และตกแต่งด้วย CSS สามารถทำได้ดังนี้ครับ

เนื่องจากคุณขอโค้ดสำหรับสร้างหน้าเว็บแสดงสินค้าโดยไม่ใช้ HTML (หมายถึงไฟล์ .html ที่มีแท็กโครงสร้างปกติ) ผมจะสมมติว่าคุณมีไฟล์ JavaScript และ CSS และจะใช้ JavaScript สร้างโครงสร้างพื้นฐานทั้งหมดและเชื่อมโยงกับ CSS ครับ

ข้อจำกัด: โดยปกติแล้ว เว็บเบราว์เซอร์ต้องการไฟล์ HTML เพื่อเป็นจุดเริ่มต้นในการโหลดสคริปต์ JavaScript และสไตล์ชีต CSS อย่างไรก็ตาม โค้ดด้านล่างนี้จะแสดงวิธีการที่ JavaScript สร้างทุกอย่าง ตั้งแต่แท็ก <body> ลงมา โดยคุณจะต้องเรียกใช้สคริปต์นี้ในไฟล์ HTML พื้นฐานมากๆ (อาจมีแค่แท็ก <script> เท่านั้น) เพื่อให้มันทำงานได้

💻 JavaScript (DOM Manipulation)

บันทึกโค้ดนี้เป็นไฟล์ชื่อ script.js

JavaScript

// ข้อมูลสินค้าที่เราจะแสดง

const products = [

{ id: 1, name: "เสื้อยืดคลาสสิก", price: 350, image: "tshirt.jpg" },

{ id: 2, name: "กางเกงยีนส์เดนิม", price: 1200, image: "jeans.jpg" },

{ id: 3, name: "รองเท้าผ้าใบ", price: 890, image: "sneakers.jpg" },

{ id: 4, name: "กระเป๋าสะพาย", price: 550, image: "bag.jpg" }

];

// ฟังก์ชันหลักในการสร้างหน้าเว็บ

function createProductPage() {

const body = document.body;

// 1. สร้างส่วนหัว (Header)

const header = document.createElement('header');

header.innerHTML = '<h1>สินค้ามาใหม่</h1>';

body.appendChild(header);

// 2. สร้างคอนเทนเนอร์หลักสำหรับสินค้า

const productContainer = document.createElement('div');

productContainer.id = 'product-list';

body.appendChild(productContainer);

// 3. วนลูปเพื่อสร้างบัตรสินค้า (Product Card) แต่ละชิ้น

products.forEach(product => {

// สร้างองค์ประกอบหลักสำหรับสินค้าแต่ละชิ้น

const card = document.createElement('div');

card.className = 'product-card';

card.setAttribute('data-product-id', product.id);

// 3.1 สร้างรูปภาพ

const img = document.createElement('img');

img.src = product.image; // สมมติว่ามีรูปภาพชื่อตามนี้ในโฟลเดอร์เดียวกัน

img.alt = product.name;

card.appendChild(img);

// 3.2 สร้างชื่อสินค้า

const name = document.createElement('h2');

name.textContent = product.name;

card.appendChild(name);

// 3.3 สร้างราคา

const price = document.createElement('p');

price.className = 'price';

price.textContent = `${product.price} บาท`;

card.appendChild(price);

// 3.4 สร้างปุ่มเพิ่มลงตะกร้า

const button = document.createElement('button');

button.textContent = 'เพิ่มลงตะกร้า';

button.addEventListener('click', () => {

alert(`เพิ่ม ${product.name} เข้าตะกร้าแล้ว!`);

});

card.appendChild(button);

// เพิ่มบัตรสินค้าลงในคอนเทนเนอร์หลัก

productContainer.appendChild(card);

});

// 4. สร้างส่วนท้าย (Footer)

const footer = document.createElement('footer');

footer.innerHTML = '<p>&copy; 2025 ร้านค้าออนไลน์</p>';

body.appendChild(footer);

}

// เรียกใช้ฟังก์ชันเมื่อ DOM โหลดเสร็จสมบูรณ์

document.addEventListener('DOMContentLoaded', createProductPage);

// (เพื่อการสาธิต) สร้างลิงก์ CSS โดยใช้ DOM (ปกติจะอยู่ใน HTML)

const head = document.head;

const link = document.createElement('link');

link.rel = 'stylesheet';

link.href = 'style.css'; // เชื่อมไปยังไฟล์ CSS

head.appendChild(link);

🎨 CSS (Styling)

บันทึกโค้ดนี้เป็นไฟล์ชื่อ style.css

CSS

/* จัดรูปแบบทั่วไป */

body {

font-family: 'Arial', sans-serif;

margin: 0;

padding: 0;

background-color: #f4f4f9 ;

color: #333 ;

line-height: 1.6;

}

/* ส่วนหัว */

header {

background-color: #007bff ;

color: white;

padding: 20px 0;

text-align: center;

box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);

}

header h1 {

margin: 0;

font-size: 2.5em;

}

/* คอนเทนเนอร์รายการสินค้า */

#product -list {

display: flex; /* จัดเรียงสินค้าแบบยืดหยุ่น */

flex-wrap: wrap; /* ให้ขึ้นบรรทัดใหม่ได้ */

justify-content: center; /* จัดให้อยู่ตรงกลาง */

padding: 20px;

gap: 30px; /* ระยะห่างระหว่างบัตรสินค้า */

}

/* บัตรสินค้าแต่ละชิ้น */

.product-card {

background-color: white;

border: 1px solid #ddd ;

border-radius: 8px;

box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

padding: 15px;

width: 250px; /* กำหนดความกว้างคงที่ */

text-align: center;

transition: transform 0.2s;

}

.product-card:hover {

transform: translateY(-5px); /* เลื่อนขึ้นเล็กน้อยเมื่อชี้ */

box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);

}

/* รูปภาพสินค้า */

.product-card img {

width: 100%;

height: auto;

border-radius: 4px;

margin-bottom: 10px;

}

/* ชื่อสินค้า */

.product-card h2 {

font-size: 1.4em;

margin: 10px 0;

color: #007bff ;

}

/* ราคา */

.product-card .price {

font-size: 1.2em;

color: #e67e22 ; /* สีส้มสำหรับราคา */

font-weight: bold;

margin-bottom: 15px;

}

/* ปุ่ม */

.product-card butt

2025/11/8 แก้ไขเป็น

... อ่านเพิ่มเติมถ้ามีคนทักมาถามเรื่อง “งานเขียนโค้ด” หรืออยากจ้าง “บริการออกแบบโปรแกรมอุตสาหกรรม” สิ่งที่ผมมักเริ่มทำก่อนคือทำเดโมให้เห็นภาพเหมือนตัวอย่างหน้าเว็บแสดงสินค้า (สินค้ามาใหม่) ที่สร้างด้วย JavaScript DOM เพียวๆ + CSS เพราะเดโมเล็กๆ จะช่วยคุยงานให้ชัดมากว่าเราทำอะไรได้แค่ไหน และจะต่อยอดเป็นระบบจริงยังไง 1) ทำไมเดโมแบบ JavaScript DOM ถึงช่วยคุยงานบริการได้ - ลูกค้าจะเห็นโครงสร้างข้อมูลชัด: เรามี products เป็น array/object แล้วเอาไป render เป็นการ์ด (รูป/ชื่อ/ราคา/ปุ่ม) - ต่อให้เป็นโปรแกรมอุตสาหกรรม หลักการคล้ายกัน: “ข้อมูลจากเครื่อง/เซนเซอร์/ไฟล์” → “แสดงผลบนหน้าจอ” → “กดสั่งงาน/ยืนยัน” - ใช้เวลาน้อยในการพิสูจน์แนวทาง (Proof of Concept) ก่อนขึ้นระบบใหญ่ 2) Minimal HTML Shell ที่ควรเตรียม (เพื่อให้รันได้จริง) ถึงจะบอกว่าไม่ใช้ HTML โดยตรง แต่ยังต้องมีไฟล์เริ่มต้นอย่างน้อย 1 ไฟล์เพื่อโหลด script.js เช่น - index.html ที่มี <script src="script.js"></script> แนะนำให้เปิดผ่าน Live Server จะได้ไม่เจอปัญหาโหลดไฟล์/รีเฟรชไม่อัปเดต 3) เช็กลิสต์คุณภาพโค้ดเวลารับงานเขียนโค้ด (ผมใช้จริงตอนส่งงาน) - แยกข้อมูลกับการแสดงผล: products ควรอยู่ส่วนบนหรือแยกไฟล์ data.js - ตั้งชื่อ class/id ให้ตรงกับ CSS: ในตัวอย่างนี้ควรระวัง #product-list (อย่าเผลอพิมพ์มีเว้นวรรคเป็น #product -list ไม่งั้น CSS ไม่ติด) - ใส่ alt ให้รูป (มีแล้ว) และเตรียม fallback กรณีรูปหาย - จัดโครงสร้างให้ขยายง่าย: ถ้าจะเพิ่มหมวดหมู่/ค้นหา/เรียงราคา ให้มีฟังก์ชัน renderProducts(list) แล้วค่อยส่ง list ที่ถูกกรองเข้าไป 4) จากหน้าเว็บเดโม ไปสู่ “โปรแกรมอุตสาหกรรม” ต้องเพิ่มอะไรบ้าง ถ้าจะทำเป็นระบบใช้งานจริง (เช่น หน้าจอ HMI บนเว็บ, dashboard โรงงาน, ระบบสต็อก) ผมมองเป็นชิ้นๆ แบบนี้ - การเชื่อมข้อมูล: ดึงจาก API/ฐานข้อมูล (แทน array ในไฟล์) - ความปลอดภัย: แยกสิทธิ์ผู้ใช้ (Operator/Engineer/Admin) - บันทึกเหตุการณ์: log การกดปุ่ม/การเปลี่ยนค่า เพื่อ audit ย้อนหลัง - ความเสถียร: ออกแบบให้รีโหลดแล้วข้อมูลไม่หาย และจัดการ error ให้ผู้ใช้เข้าใจ 5) สเปกที่ควรถามก่อนตีราคา/รับงาน - ต้องการแค่หน้าเว็บแสดงผล หรือมีการกดสั่งงาน/ควบคุมอุปกรณ์ด้วย - จำนวนหน้าจอ/จำนวนข้อมูลที่แสดง (เช่น รายการสินค้า 100 รายการ vs 10,000 รายการ) - ต้องรองรับมือถือ/แท็บเล็ต/จอทีวีโรงงาน - ต้องการส่งมอบแบบไฟล์ static หรือมี backend + database ถ้าใครกำลังเริ่มจากเดโม JavaScript DOM แบบในโพสต์นี้ ผมแนะนำให้ลองเพิ่ม 2 ฟีเจอร์ง่ายๆ เพื่อให้ใกล้งานจริงขึ้น: (1) ปุ่มเพิ่มลงตะกร้าเปลี่ยนเป็นอัปเดตจำนวนในหน้าแทน alert (2) ทำระบบค้นหาชื่อสินค้าแบบพิมพ์แล้วกรองทันที จะช่วยให้เห็นภาพการต่อยอดเวลาไปรับงานเขียนโค้ดมากขึ้นครับ

โพสต์ที่เกี่ยวข้อง

ภาพการ์ตูนเด็กผู้หญิงกำลังมองแล็ปท็อปด้วยสีหน้ากังวล มีข้อความว่า "เจอ Error แล้วทำไงต่อ" และ "มือใหม่หัด Coding" แสดงถึงความท้าทายในการเริ่มต้นเขียนโค้ด
ภาพการ์ตูนเด็กผู้หญิงกำลังคิด มีฟองความคิดแสดงโลโก้ Python, JS (JavaScript) และ C++ พร้อมข้อความ "เลือกภาษาที่ใช่" และคำแนะนำ��เกี่ยวกับภาษาโปรแกรมต่างๆ
ภาพการ์ตูนเด็กผู้หญิงกำลังติดตั้งโปรแกรมบนแล็ปท็อปอย่างมีความสุข มีข้อความว่า "ติดตั้งโปรแกรมที่จำเป็น Code Editor" และชื่อโปรแกรมยอดนิยม เช่น VsCode, Pycharm
มือใหม่เริ่มต้นเขียนโค้ดต้องทำยังไง? 👩‍💻
เริ่มต้นเขียนโค้ดต้องทำยังไง? 👩‍💻 มาดู 5 ขั้นตอนง่ายๆ ที่มือใหม่ก็ทำตามได้เลย! ✨ หลายคนอยากลองเขียนโค้ดแต่ไม่รู้จะเริ่มตรงไหนดีใช่มั้ย? ไม่ต้องกังวลเลยค่ะ! วันนี้จะมาแชร์ขั้นตอนง่ายๆ ที่จะช่วยให้คุณเริ่มต้นเส้นทางโปรแกรมเมอร์ได้อย่างถูกทางแน่นอน! 1. เลือกภาษาแรกที่ใช่ การเลือก 'ภาษาแรก'
TechTalk by Taa

TechTalk by Taa

ถูกใจ 350 ครั้ง

คู่มือเด็กรามมือใหม่! รวมเว็บไซต์สำคัญที่ต้องใช้ตลอดหลักสูตร 📖💻"
#เด็กราม #รีวิวราม #มหาวิทยาลัยรามคำแหง #เรียนออนไลน์ #เว็บไซต์แนะนำ #StudyTips #Ramkhamhaeng #TongOnTheGo #พรีดีกรี
ปักเป้าตัวเป้ง🐡

ปักเป้าตัวเป้ง🐡

ถูกใจ 570 ครั้ง

รวมเว็บไซต์แหล่ง หางานทำจากที่บ้าน WFH
การหางาน Work From Home ไม่ได้ขึ้นอยู่กับว่า “รู้จักเว็บสมัครงานเยอะแค่ไหน”🍊 แต่ขึ้นอยู่กับว่า “คุณพร้อมแค่ไหนให้บริษัทเลือก” ถ้ายังไม่มีสกิลหรือผลงาน ต่อให้สมัคร 100 ที่ ก็อาจจะเงียบกริบ! แต่ถ้ามีของจริง สมัครไม่กี่ที่ ก็มีโอกาสได้เช่นกันค่ะ โลก WFH ไม่ได้ใจร้าย แต่มันเลือกคนมากกว่าส
Lizzy Share ลาออกวันไหน🍀

Lizzy Share ลาออกวันไหน🍀

ถูกใจ 1287 ครั้ง

หน้าจอแสดงระบบเว็บไซต์สำหรับทำเนียบผู้ผ่านการอบรมฯ ที่สร้างด้วย Canva AI และเชื่อมต่อกับ Google Sheet มีช่องค้นหา กรองข้อมูล และตารางแสดงข้อมูลผู้เข้าอบรม
หน้าจอแสดงภาพรวมข้อมูลผู้เข้าอบรมทั้งหมด 899 คน จาก 23 จังหวัด 12 เขตตรวจราชการ และ 689 สถานศึกษา พร้อมช่องค้นหาและตัวกรองข้อมูล
ส่วนหนึ่งของหน้าจอแสดงสรุปข้อมูลผู้เข้าอบรมแยกตามเขตตรวจราชการ โดยมีจำนวนผู้เข้าอบรมในแต่ละเขตแสดงอยู่
Promtระบบเว็บไซต์ด้วย Canva AI เชื่อมข้อมูล Google sheet
🍋 สร้างเว็บไซต์ง่ายๆ ไม่ต้องเขียนโค้ด! ด้วย Canva AI & Google Sheet ✨ เบื่อไหมกับการสร้างระบบเว็บไซต์ที่ต้องเสียเวลาเขียนโค้ด? 😩 วันนี้มาแชร์ทางลัดสุดปัง! ที่ช่วยให้คุณมี เว็บแอป ส่วนตัวได้ง่าย ๆ แถมไม่ต้องแตะโค้ดเลย! 💻 💡 ขั้นตอนง่าย ๆ ที่ใครก็ทำได้: ออกแบบใน Canva: ใช้ Canva AI ช่วยออกแบบ
vxxwpc._

vxxwpc._

ถูกใจ 12 ครั้ง

JavaScript Cheat Sheet🌟ภาษายอดนิยมสำหรับเว็บฝั่ง Frontend และ Backend
JavaScript ภาษายอดนิยมสำหรับเว็บฝั่ง Frontend และ Backend ทำเว็บไซต์แบบไดนามิก เกมบนเบราว์เซอร์ และมือถือ 5 สิ่งต้องรู้เกี่ยวกับ JavaScript 1. JavaScript คืออะไร? — ภาษาโปรแกรมลำดับสูง รันได้ทั้ง Browser (Frontend) และ Server (Node.js) 2. ติดตั้ง/รันที่ไหน? — รันบน Browser console (F12) หรือติ
NerdDailyDose

NerdDailyDose

ถูกใจ 123 ครั้ง

ภาพหญิงสาวในชุดสีเขียวอ่อนยืนยิ้มกลางถนนที่มีต้นไม้ใบไม้สีทองร่วงหล่น พร้อมข้อความ 'แชร์ทริคหางานในประเทศแคนาดา ep.2 หางานผ่านช่องทางไหน?'
ภาพหน้าจอโทรศัพท์แสดงไอคอนแอปหางาน 4 แอป ได้แก่ LinkedIn, Job Bank, Glassdoor และ Indeed พร้อมคำอธิบายคุณสมบัติหลักของแต่ละแอปและระบุว่าเป็นแพลตฟอร์มที่มีทั้งเว็บไซต์และแอปมือถือ
ภาพหน้าจอ LinkedIn แสดงการสร้างโปรไฟล์ การเชื่อมต่อ และแพลตฟอร์มหางาน พร้อมข้อความระบุว่าบางครั้งแมวมองอาจเข้ามาดูโปรไฟล์และเสนองานให้สมัคร
แชร์ทริคหางานในแคนาดา ep.2 : รวมเว็บไซต์หางานแคนาดา 👩‍💻
สวัสดีค่ะ ep.2 แอนขอพูดถึงเว็บไซต์หลักๆที่แอนใช้ในการหางานในประเทศแคนาดานะคะ 1. LinkedIn : www.linkedin.com ⭐️ หลายๆคนในวัยทำงานน่าจะรู้จักเว็บไซต์นี้กันแล้ว ใครยังไม่มีแนะนำให้สมัครและสร้าง profile ของตนเองเอาไว้ มีหลายบริษัทให้แนบลิ้งค์ profile ตอนสมัครงานเช่นกันค่า (แต่มักจะเป็น optional น้า)
Ann wanders Canada

Ann wanders Canada

ถูกใจ 544 ครั้ง

รวมเว็บไซต์ช่วยออกแบบ UI ฟรี 🎨
⭐ จุดเด่น 🎲 CSS Doodle สร้าง Pattern และ Artwork ด้วย CSS สร้างพื้นหลังแบบสุ่มได้ไม่ซ้ำ เพิ่มลูกเล่นให้เว็บไซต์โดยไม่ต้องใช้รูปภาพ เหมาะกับงาน Creative Design 🫧 Blobmaker สร้าง Blob Shape ได้ในคลิกเดียว ดาวน์โหลดเป็น SVG ได้ทันที ปรับแต่งรูปทรงได้อิสระ เหมาะกับ Hero Section และ Landing Pa
ITeveryday

ITeveryday

ถูกใจ 12 ครั้ง

การใส่ CSS ในเว็บไซต์ 🎨
📝 สรุป CSS คือภาษาที่ใช้ตกแต่งเว็บไซต์ให้สวยงามและเป็นระเบียบ โดยสามารถใส่ได้ 3 รูปแบบ ได้แก่ Inline CSS, Internal CSS และ External CSS ซึ่งแบบ External CSS เป็นวิธีที่นิยมใช้มากที่สุดในการพัฒนาเว็บไซต์จริง เพราะจัดการง่ายและนำกลับมาใช้ซ้ำได้ #CSS #ITeveryday #html #it #Lemon8
ITeveryday

ITeveryday

ถูกใจ 10 ครั้ง

ภาพหญิงสาวกำลังทำงานจากระยะไกลบนแล็ปท็อป โดยมีวิวทิวทัศน์ภูเขาหิมะและป่าสนนอกหน้าต่างขนาดใหญ่ พร้อมข้อความ 'Remote work' และข้อมูลสถานที่ 'AUSTRIA' แสดงถึงการทำงานที่ไหนก็ได้
Remote work : 🌍 20 เว็บไซต์หางานแบบ Remote
🌍 20 เว็บไซต์หางานแบบ Remote (ทำงานจากที่ไหนก็ได้) เหมาะกับใคร? ✅ ฟรีแลนซ์ (Freelancer) ✅ คนหางานที่อยากทำจากบ้าน 🏡 ✅ นักเดินทางทำงาน (Digital Nomads) ✅ คนที่อยากมีรายได้เสริมจากงานออนไลน์ ⸻ 🔹 เว็บไซต์หางาน Remote ที่ควรรู้จัก 1. Just Remote – รวมงาน remote จากทั่วโลก 2.&
bteeranan

bteeranan

ถูกใจ 4 ครั้ง

ดูเพิ่มเติม