== $ 0 (ศูนย์เท่ากับศูนย์ดอลลาร์) หมายความว่าอะไรในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome


310

ในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Google Chrome เมื่อฉันเลือกองค์ประกอบฉันเห็น ==$0ถัดจากองค์ประกอบที่เลือก นั่นหมายความว่าอย่างไร?

ภาพหน้าจอ


28
เป็น ID โหนด DOM ที่เลือก พยายามที่จะเลือกโหนดใด ๆ และการเขียน$0ในคอนโซลและดูสิ่งที่เกิดขึ้น;)
หยุดชะงัก

33
มันสับสนมาก ดูเหมือนว่ามีคนเขียนจาวาสคริปต์บางอย่างที่พวกเขาลืมใส่ไว้ในแท็กสคริปต์ ผมใช้เวลาที่ดีสิบนาทีพยายามที่จะคิดออกว่าฉันได้ messed ขึ้นในรหัสของฉัน ...
กีบ


2
ฉันคิดว่าเฉพาะสีพื้นหลังที่แตกต่างกันในบรรทัดที่คลิกควรเพียงพอ ... ฉันไม่เห็นจำเป็นต้องเพิ่ม == $ 0 ไปยังซอร์ส html ... ความคิดที่ไม่ดี Chrome ทำงานร่วมกับ Chrome-ish
Sergio Abreu

คำตอบ:


286

มันเป็นดัชนีโหนด DOM ที่เลือกล่าสุด Chrome กำหนดดัชนีให้กับแต่ละโหนด DOM ที่คุณเลือก ดังนั้น$0จะชี้ไปที่โหนดสุดท้ายที่คุณเลือกเสมอและ$1จะชี้ไปที่โหนดที่คุณเลือกก่อนหน้านั้น ลองคิดดูว่ามันเป็นปมของโหนดที่เลือกล่าสุด

เป็นตัวอย่างพิจารณาดังต่อไปนี้

<div id="sunday"></div>
<div id="monday"></div>
<div id="tuesday"></div>

ตอนนี้คุณเปิด devtools คอนโซลที่เลือก#sunday, #mondayและ#tuesdayในลำดับที่กล่าวถึงคุณจะได้รับรหัสที่ชอบ:

$0 -> <div id="tuesday"></div> 
$1 -> <div id="monday"></div>
$2 -> <div id="sunday"></div>

หมายเหตุ: มันอาจมีประโยชน์ที่จะรู้ว่าโหนดนั้นสามารถเลือกได้ในสคริปต์ของคุณ (หรือคอนโซล) ตัวอย่างเช่นการใช้งานยอดนิยมอย่างหนึ่งคือตัวเลือกองค์ประกอบเชิงมุมดังนั้นคุณสามารถเลือกโหนดของคุณและรันสิ่งนี้:

angular.element($0).scope()

Voila คุณสามารถเข้าถึงขอบเขตโหนดผ่านทางคอนโซล


9
การใช้ / ประโยชน์ของสิ่งนี้คืออะไร?
joe_young

6
ฉันเชื่อว่ามันจะมีประโยชน์ในการแก้ไขข้อบกพร่อง ความสามารถในการเข้าถึงองค์ประกอบที่ตรวจสอบโดยใช้ตัวเลือกที่เรียบง่ายสามารถช่วยในหลาย ๆ สถานการณ์ในระหว่างการดีบัก
หยุดชะงัก

6
ดังนั้นสิ่งที่ดีมักจะปรากฏ== $0ใน UI? ใครก็ตามที่รู้เกี่ยวกับ$0จะรู้ว่าองค์ประกอบนั้นเป็นอย่างไรและไม่มีความหมายสำหรับทุกคนที่ไม่ได้
BlueRaja - Danny Pflughoeft

6
@ Joe_young ฉันคิดว่าประโยชน์คือสามารถเข้าถึงองค์ประกอบต่างๆในคอนโซลได้อย่างรวดเร็วเมื่อปรับแต่งสิ่งต่าง ๆ นี่คือวิดีโอที่ฉันรวบรวมไว้แสดงให้เห็น! youtu.be/AKLdx8z6aDk
RoccoB

1
@LucaDeNardi ใช่มันเป็นอันตรายในการผลิตและนักพัฒนา Angular ทุกคนเพิ่มบรรทัดนี้: - $ compileProvider.debugInfoEnabled (false); ในการกำหนดค่าแอพของพวกเขาเพื่อเพิ่มประสิทธิภาพ อย่างไรก็ตามคุณสามารถเรียกใช้ angular.reloadWithDebugInfo () ได้อย่างง่ายดาย ใน Console เพื่อดีบั๊กเมื่อจำเป็น
Varun Sharma

57

$ 0 ส่งคืนองค์ประกอบที่เลือกล่าสุดหรือวัตถุ JavaScript $ 1 ส่งคืนองค์ประกอบที่เลือกล่าสุดเป็นอันดับสองและอื่น ๆ

อ้างอิง: การอ้างอิงCommand Line API


26

คำตอบอื่น ๆ ที่นี่อธิบายอย่างชัดเจนว่ามันหมายถึงอะไรฉันชอบที่จะอธิบายการใช้งาน

คุณสามารถเลือกองค์ประกอบในelementsแท็บและสลับไปที่consoleแท็บในโครเมี่ยม เพียงพิมพ์$0 or $1หรือหมายเลขใดก็ตามและกด Enter และองค์ประกอบจะปรากฏในคอนโซลสำหรับการใช้งานของคุณ

สกรีนช็อตของเครื่องมือ dev dev


13

นี่คือคำใบ้ของ Chrome ที่จะบอกคุณว่าถ้าคุณพิมพ์ $ 0 บนคอนโซลมันจะเทียบเท่ากับองค์ประกอบนั้น ๆ

ภายใน Chrome จะรักษาสแต็กโดยที่ $ 0 เป็นองค์ประกอบที่เลือก $ 1 คือองค์ประกอบที่ถูกเลือกครั้งสุดท้าย $ 2 จะเป็นองค์ประกอบที่เลือกไว้ก่อนหน้า $ 1 และต่อไปเรื่อย ๆ

นี่คือแอปพลิเคชั่นบางส่วน:

  • การเข้าถึงองค์ประกอบ DOM จากคอนโซล: $ 0
  • การเข้าถึงคุณสมบัติจากคอนโซล: $ 0.parentElement
  • การอัพเดตคุณสมบัติของพวกเขาจากคอนโซล: $ 1.classList.add (... )
  • การอัปเดตองค์ประกอบ CSS จากคอนโซล: $ 0.styles.backgroundColor = "aqua"
  • ทริกเกอร์เหตุการณ์ CSS จากคอนโซล: $ 0.click ()
  • และทำสิ่งที่ซับซ้อนมากขึ้นเช่น$ 0.appendChild (document.createElement ("div"))

ดูการกระทำทั้งหมดนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คำสั่งสนับสนุน:

ใช่ฉันเห็นด้วยมีวิธีที่ดีกว่าในการดำเนินการเหล่านี้ แต่คุณลักษณะนี้สามารถใช้งานได้สะดวกในบางสถานการณ์ที่ซับซ้อนเช่นเมื่อต้องการคลิกองค์ประกอบ DOM แต่ไม่สามารถทำได้จาก UI เพราะครอบคลุม องค์ประกอบอื่น ๆ หรือด้วยเหตุผลบางอย่างไม่สามารถมองเห็นได้บน UI ในขณะนั้น


2

ฉันจะบอกว่ามันเป็นเพียงชวเลขไวยากรณ์เพื่อรับการอ้างอิงขององค์ประกอบ HTML ในช่วงเวลาการแก้จุดบกพร่อง, normaly งานประเภทนี้จะดำเนินการโดยวิธีการเหล่านี้

document.getElementById , document.getElementsByClassName , document.querySelector

ดังนั้นการคลิกที่องค์ประกอบ html และรับตัวแปรอ้างอิง ($ 0) ในคอนโซลเป็นการประหยัดเวลาอย่างมากในระหว่างวัน

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