ทำความสะอาด Tag Html ด้วย jQuery

ผมขอแปลมาจาก CodingInstinct เลยละกันครับ ผมว่าเป็นเทคนิคที่เข้าใจง่ายแล้วสุดยอดเหมาะสมกับคนชอบเห็น code แบบ clean สุดๆต้องไม่พลาดเจ้าตัวนี้เลยละครับ

กล่องใส่ข้อความสวยๆ

จะเห็นได้การที่เราจะทำกล่องข้อความสวยๆแบบนี้ เราคงต้องไปเจอกับ Code สุดไม่ Clean ประเภทนี้รึเปล่า ?

<div class="shadebox-wrapper">
<div class="shadebox-wrapper2">
<div class="shadebox-wrapper3">
<div class="shadebox">
<div class="shadebox-header">
<b class="shadebox-tlc"></b>
<b class="shadebox-trc"></b>
</div>            
<h2>Hello</h2>
<div class="shadebox-inner">
Lorem uipsad asd asd asd as
asdassdasd asd asd
dasdaasd  asd asd
asdasdsd dsd
</div>
<div class="shadebox-footer">
<b class="shadebox-blc"></b>
<b class="shadebox-brc"></b>
</div>
</div>
</div>
</div>
</div>

โดยเจ้าของบทความว่าเขาอาจจะใช้ JQuery Corner เพื่อกำจัด Code ยุ่งยากเช่นนี้ออกไปได้ แต่มันไม่มีเงาในแบบที่เขาต้องการ (นั้นเป็นเหตุผลที่เขาทำกล่องแบบนี้ขึ้นมาเอง) แต่เขาหวังว่า Code ของเขาจะเหลืออย่างมากเพียงแค่นี้

<div class="shadebox">
<h2>Hello</h2>            
<div class="shadebox-inner">
Lorem uipsad asd asd asd as
asdassdasd asd asd
dasdaasd  asd asd
asdasdsd dsd
</div>
</div>

เสร็จแล้วเขาก็สามารถทำได้ด้วยคำสั่ง Wrap , prepend , append ของ jQuery ด้วย code ดังนี้เลย

<script type="text/javascript">
$(document).ready(function() {
$('.shadebox').wrap(
"<div class='shadebox-wrapper'>" +
"<div class='shadebox-wrapper2'>" +
"<div class='shadebox-wrapper3'>" +
"</div></div></div>");
$('.shadebox').prepend("<div class='shadebox-header'><b class='shadebox-tlc'></b><b class='shadebox-trc'></b></div>");
$('.shadebox').append("<div class='shadebox-footer'><b class='shadebox-blc'></b><b class='shadebox-brc'></b></div>");
});              
</script>

โดยเขายังฝากบอกมันไม่มีวิธีแก้ไขปัญหาที่เหมาะสมที่สุดสำหรับเรื่องนี้แต่ประเด็นของเขาคือเขาอยากทำให้ Code ของเขาอ่านง่ายและ maintanance ง่ายที่สุด ผมจะขออธิบาย Code อย่างสั้นๆได้ใจความนะครับโดย wrap จะทำการหุ้ม

<div class=”shadebox”> ก่่อนเสร็จแล้วก็เติม code ในส่วนหัวและท้าย (สังเกตุจากตอนต้นมาเป็น code ที่ปรับแล้วจะมีในส่วน wrapper แล้วก็ส่วน Header หลัง <div class=”shadebox”> แล้วค่อยตามด้วยค่าต่างๆแล้วปิดท้ายด้วย Footer แบบที่เขาต้องการ prepend เพื่อทำการแทรก header append ทำการแทรก footer ทำให้ code เขา clean สุดๆ ก็ฝากวิธีนี้เพื่อใครกำลังต้องการ Clean HTML jQuery ทำให้มันเป็นเรื่องง่ายมากเลยทีเดียว ;)

เนื้อหาคล้ายกันที่น่าสนใจ

No Comments

(Required)
(Required, will not be published)