LWC – ตัวเลือกแบบสอบถาม ()

Lwc Taw Leuxk Baebsxbtham



การเข้าถึงองค์ประกอบ DOM ด้วยวิธีมาตรฐานสามารถทำได้โดยใช้ querySelector() และ querySelectorAll() ในคู่มือนี้ เราจะพูดถึงวิธีการเข้าถึงองค์ประกอบ HTML โดยใช้ querySelector() พร้อมตัวอย่างต่างๆ

ตัวเลือกแบบสอบถาม()

โดยพื้นฐานแล้ว querySelector() จะใช้กับ “this.template” ที่ดึงข้อมูลองค์ประกอบที่มีอยู่ในเทมเพลตใดเทมเพลตหนึ่ง หากมีองค์ประกอบหลายรายการจะพิจารณาเฉพาะองค์ประกอบแรกเท่านั้น Null จะถูกส่งกลับหากไม่มีองค์ประกอบที่ระบุในเทมเพลต มันใช้ตัวเลือกเป็นพารามิเตอร์ นี่อาจเป็นแท็กชื่อคลาส บัตรประจำตัวจะไม่ได้รับการสนับสนุน ในบางกรณี คุณมีคลาสเดียวกันแต่ค่าต่างกัน ในสถานการณ์นี้ เราจำเป็นต้องใช้ data-recid ที่ได้รับองค์ประกอบตามค่า

ไวยากรณ์:







มาดูวิธีการระบุตัวเลือกภายใน querySelector()



  1. this.template.querySelector (ตัวเลือก)
  2. this.template.querySelector('[data-recid=”value”]')

ตัวอย่างเช่น หากตัวเลือกคือแท็ก h1 คุณควรระบุเป็น 'h1'



1. ตัวอย่างทั้งหมดใช้ไฟล์ “meta.xml” นี้ เราจะไม่ระบุสิ่งนี้ในแต่ละตัวอย่าง คุณสามารถเพิ่มส่วนประกอบ LWC ลงในหน้าบันทึก หน้าแอพ หรือโฮมเพจของคุณได้





'1.0' ?>

'http://soap.sforce.com/2006/04/metadata' >

<เวอร์ชัน API> 57.0

จริง

<เป้าหมาย>

ฟ้าผ่า__หน้าบันทึก

ไลท์นิ่ง__AppPage

ไลท์นิ่ง__โฮมเพจ



2. ในตัวอย่างทั้งหมดที่เราจะพูดถึงในคู่มือนี้ Logic จะถูกระบุเป็นโค้ด “js” หลังจากนั้น เราจะระบุภาพหน้าจอที่มีโค้ด “js” ทั้งหมด



ตัวอย่างที่ 1:

ขั้นแรก เราสร้างแท็ก h1, div, span และ lightning-button พร้อมข้อความบางส่วนในไฟล์ HTML นอกจากนี้เรายังสร้างปุ่มที่รับองค์ประกอบก่อนหน้าเมื่อมีการคลิก ในไฟล์ “js” เราจะส่งคืนข้อความภายในขององค์ประกอบทั้งสี่นี้ผ่านทาง this.template.querySelector()

firstExample.html

<แม่แบบ>

<รูปแบบการ์ดสายฟ้า = 'แคบ' ชื่อ = 'สวัสดี' ไอคอน- ชื่อ = 'มาตรฐาน:บัญชี' >



< h1 > สวัสดี LinuxHint ฉันอยู่ที่ h1 < / h1 >

< กอง > สวัสดี LinuxHint ฉันอยู่ดิวิชั่น < / กอง >

< ช่วง > สวัสดี LinuxHint ฉันอยู่ในช่วง < / ช่วง >

<อินพุตสายฟ้า พิมพ์ = 'ข้อความ' ตัวแปร = 'มาตรฐาน' ชื่อ = 'ชื่อ' ฉลาก = 'การป้อนข้อความ' >

สวัสดี LinuxHint ฉันกำลังป้อนข้อมูลแบบสายฟ้าแลบ < / ฟ้าผ่าอินพุต>

<รูปแบบปุ่มสายฟ้า = 'ฐาน' ฉลาก = 'รับรายละเอียด' เมื่อคลิก = { รับรายละเอียด } >< / ปุ่มฟ้าผ่า>



< / การ์ดสายฟ้า>

< / แม่แบบ>

firstExample.js

รับรายละเอียด ( ) {

// รับข้อความภายในของแท็ก h1

คอนโซล บันทึก ( นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'h1' ) . ข้อความภายใน ) ;

// รับข้อความภายในของแท็ก div

คอนโซล บันทึก ( นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'ดิฟ' ) . ข้อความภายใน ) ;

// รับข้อความภายในของแท็ก span

คอนโซล บันทึก ( นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'ช่วง' ) . ข้อความภายใน ) ;

// รับข้อความภายในของอินพุตฟ้าผ่า

คอนโซล บันทึก ( นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'อินพุตฟ้าผ่า' ) . ข้อความภายใน ) ;

}

รหัสทั้งหมด:

เอาท์พุท:

เพิ่มส่วนประกอบนี้ลงในหน้า 'บันทึก' ของวัตถุใด ๆ (เราได้เพิ่มลงในหน้าบันทึกของบัญชี) ตรวจสอบหน้าต่างนี้และไปที่แท็บ 'คอนโซล'

ตอนนี้คลิกปุ่ม 'รับรายละเอียด' หลังจากนั้นคุณจะเห็นว่าข้อความภายในแสดงบนคอนโซลสำหรับองค์ประกอบทั้งหมด

ตัวอย่างที่ 2:

ใช้ส่วนประกอบที่กล่าวถึงในตัวอย่างที่ 1 ระบุองค์ประกอบทั้งสองด้วยแท็ก “h1” ในองค์ประกอบ HTML และใช้ querySelector() ในไฟล์ “js” เพื่อรับข้อความภายในของ “h1”

firstExample.html

<แม่แบบ>

<รูปแบบการ์ดสายฟ้า = 'แคบ' ชื่อ = 'สวัสดี' ไอคอน- ชื่อ = 'มาตรฐาน:บัญชี' >

< h1 > สวัสดี LinuxHint ฉันเป็นคนแรก h1 < / h1 >

< h1 > สวัสดี LinuxHint ฉันคือ h1 คนที่สอง < / h1 >

<รูปแบบปุ่มสายฟ้า = 'ฐาน' ฉลาก = 'รับรายละเอียด' เมื่อคลิก = { รับรายละเอียด } >< / ปุ่มฟ้าผ่า>

< / การ์ดสายฟ้า>

< / แม่แบบ>

firstExample.js

รับรายละเอียด ( ) {

// รับข้อความภายในของแท็ก h1

คอนโซล บันทึก ( นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'h1' ) . ข้อความภายใน ) ;

}

รหัสทั้งหมด:

เอาท์พุท:

มีสององค์ประกอบที่มีแท็กเดียวกัน ดังนั้น querySelector() จะเลือกเฉพาะองค์ประกอบแรกเท่านั้น เมื่อคุณคลิกปุ่ม 'รับรายละเอียด' คุณจะเห็น 'h1' แรกและข้อความภายในจะถูกส่งกลับในคอนโซล

ตัวอย่างที่ 3:

นอกจากนี้เรายังสามารถจัดเก็บ querySelector() ไว้ในตัวแปรและใช้ตัวแปรนี้เพื่อรับข้อความภายใน มาสร้างแท็ก span พร้อมข้อความและส่งคืนข้อความภายในบนคอนโซลโดยเก็บไว้ในตัวแปร

firstExample.html

<แม่แบบ>

<รูปแบบการ์ดสายฟ้า = 'แคบ' ชื่อ = 'สวัสดี' ไอคอน- ชื่อ = 'มาตรฐาน:บัญชี' >

< ช่วง > สวัสดี LinuxHint ฉันคือสแปน < / ช่วง >< พี่ชาย >

<รูปแบบปุ่มสายฟ้า = 'ฐาน' ฉลาก = 'รับรายละเอียด' เมื่อคลิก = { รับรายละเอียด } >< / ปุ่มฟ้าผ่า>

< / การ์ดสายฟ้า>

< / แม่แบบ>

firstExample.js

รับรายละเอียด ( ) {

// รับข้อความภายในของแท็ก span

ปล่อยเขา = นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'ช่วง' ) . ข้อความภายใน

คอนโซล บันทึก ( เขา ) ;

}

รหัสทั้งหมด:

เอาท์พุท:

ตัวอย่างที่ 4:

ในตัวอย่างนี้ เราสร้างปุ่มและป้อนข้อความ (การป้อนข้อมูลแบบสายฟ้า) ที่จะใช้หัวเรื่องเป็นสตริง เราส่งผ่าน 'lightning-input' เป็นตัวเลือกไปยังเมธอด querySelector() ถูกกำหนดให้กับตัวแปร “computer_ related” เมื่อคลิกที่ปุ่มนี้ ค่าที่มีอยู่ในตัวแปรนี้จะปรากฏขึ้น

SecondExample.html

<แม่แบบ>

<การ์ดสายฟ้า ชื่อ = 'เรื่อง' >

< ศูนย์ >

<อินพุตสายฟ้า ฉลาก = 'ใส่เรื่อง' ค่า = { คอมพิวเตอร์_ที่เกี่ยวข้องกับ } >< / ฟ้าผ่าอินพุต>

< พี > หัวข้อของคุณคือ: < > {คอมพิวเตอร์_เกี่ยวข้องกับ} < / > < / พี >

< / ศูนย์ >

<ปุ่มสายฟ้า ฉลาก = 'เลือกที่นี่' เมื่อคลิก = { จัดการเรื่อง } >< / ปุ่มฟ้าผ่า>

< / การ์ดสายฟ้า>



< / แม่แบบ>

SecondExample.js

คอมพิวเตอร์_ที่เกี่ยวข้องกับ

จัดการเรื่อง ( เหตุการณ์ ) {

นี้ . คอมพิวเตอร์_ที่เกี่ยวข้องกับ = นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( 'อินพุตฟ้าผ่า' ) . ค่า ;

}

รหัสทั้งหมด:

เอาท์พุท:

ตัวอย่างที่ 5:

ที่นี่เราใช้ data-recid มาสร้างปุ่มที่มีแท็ก span สามแท็กโดยระบุเป็น 'Span1', 'Span2' และ 'Span3' ในไฟล์ HTML เลือกช่วงแรกโดยส่ง 'Span1' ไปยัง data-recid ใน querySelector()

ThirdExample.html

<แม่แบบ>

<การ์ดสายฟ้า ชื่อ = 'การระบุตาม data-id' >

< ช่วง ข้อมูล recid = 'สแปน1' > ฉันอยู่ในสแปน-1 < / ช่วง >< พี่ชาย >

< ช่วง ข้อมูล recid = 'สแปน2' > ฉันอยู่ในช่วงสแปน-2 < / ช่วง >< พี่ชาย >

< ช่วง ข้อมูล recid = 'สแปน3' > ฉันอยู่ในสแปน-3 < / ช่วง >< พี่ชาย >

<รูปแบบปุ่มสายฟ้า = 'ฐาน' ฉลาก = 'รับรายละเอียด' เมื่อคลิก = { รับรายละเอียด } >< / ปุ่มฟ้าผ่า>

< / การ์ดสายฟ้า>

< / แม่แบบ>

ThirdExample.js

รับรายละเอียด ( ) {

// รับข้อความภายในของ Span1

คอนโซล บันทึก ( นี้ . แม่แบบ . ตัวเลือกแบบสอบถาม ( '[ข้อมูล-recid='Span1']' ) . ข้อความภายใน ) ;

}

รหัสทั้งหมด:

เอาท์พุท:

บทสรุป

เราเรียนรู้วิธีใช้ querySelector() เพื่อเข้าถึงองค์ประกอบ DOM querySelector() ใช้ “this.template” เพื่อเลือกองค์ประกอบในเทมเพลตปัจจุบัน คุณสามารถเก็บสิ่งนี้ไว้ในตัวแปรหรือใช้งานโดยตรงได้ ทั้งสองอย่างนี้มีการกล่าวถึงพร้อมตัวอย่าง นอกจากนี้ เรายังจัดเตรียมตัวอย่างที่มีองค์ประกอบหลายรายการด้วย ในกรณีนี้ querySelector() จะส่งกลับองค์ประกอบแรก