คำถามติดแท็ก jquery-selectors

Selectors สามารถใช้ใน jQuery เพื่อให้ตรงกับชุดขององค์ประกอบในเอกสาร ตัวเลือก CSS ส่วนใหญ่จะใช้งานรวมถึงชุดตัวเลือกที่กำหนดเอง

4
เหตุการณ์ jQuery ทั้งหมดควรผูกติดกับ $ (เอกสาร) หรือไม่
สิ่งนี้มาจากไหน เมื่อฉันเรียนรู้ jQuery ครั้งแรกปกติฉันจะแนบกิจกรรมดังนี้ $('.my-widget a').click(function() { $(this).toggleClass('active'); }); หลังจากเรียนรู้เพิ่มเติมเกี่ยวกับความเร็วของตัวเลือกและการมอบหมายเหตุการณ์ฉันอ่านในหลาย ๆ ที่ที่ "การมอบหมายเหตุการณ์ jQuery จะทำให้โค้ดของคุณเร็วขึ้น" ดังนั้นฉันจึงเริ่มเขียนโค้ดแบบนี้: $('.my-widget').on('click','a',function() { $(this).toggleClass('active'); }); นี่เป็นวิธีที่แนะนำในการทำซ้ำพฤติกรรมของกิจกรรม. live () ที่เลิกใช้แล้ว ซึ่งเป็นสิ่งสำคัญสำหรับฉันเนื่องจากมีไซต์ของฉันเพิ่ม / ลบวิดเจ็ตอยู่ตลอดเวลา ข้างต้นไม่ได้ทำงานเหมือนกับ. live () เนื่องจากองค์ประกอบเท่านั้นที่ถูกเพิ่มลงในคอนเทนเนอร์ที่มีอยู่แล้ว '.my-widget' จะได้รับพฤติกรรม หากฉันเพิ่มบล็อก html แบบไดนามิกอีกครั้งหลังจากที่โค้ดนั้นรันองค์ประกอบเหล่านั้นจะไม่ทำให้เกิดเหตุการณ์ที่เกี่ยวข้อง แบบนี้: setTimeout(function() { $('body').append('<div class="my-widget"><a>Click does nothing</a></div>'); }, 1000); สิ่งที่ฉันต้องการบรรลุ: พฤติกรรมเก่าของ. live () // …

13
jQuery hasClass () - ตรวจสอบมากกว่าหนึ่งคลาส
ด้วย: if(element.hasClass("class")) ฉันสามารถตรวจสอบชั้นหนึ่ง แต่มีวิธีที่ง่ายในการตรวจสอบว่า "องค์ประกอบ" มีหลายชั้นหรือไม่? ฉันใช้: if(element.hasClass("class") || element.hasClass("class") ... ) ซึ่งไม่ได้เลวร้ายเกินไป แต่ฉันคิดว่าบางสิ่งเช่น: if(element.hasClass("class", "class2") ซึ่งน่าเสียดายที่มันไม่ทำงาน มีอะไรแบบนั้นเหรอ?

12
jQuery vs document.querySelectorAll
ฉันได้ยินมาหลายครั้งแล้วว่าเนื้อหาที่แข็งแกร่งที่สุดของ jQuery คือวิธีการสืบค้นและจัดการองค์ประกอบใน DOM: คุณสามารถใช้การสืบค้น CSS เพื่อสร้างการสืบค้นที่ซับซ้อนซึ่งยากที่จะทำในจาวาสคริปต์ปกติ อย่างไรก็ตามเท่าที่ฉันรู้คุณสามารถบรรลุผลลัพธ์เดียวกันกับdocument.querySelectorหรือdocument.querySelectorAllซึ่งได้รับการสนับสนุนใน Internet Explorer 8 ขึ้นไป ดังนั้นคำถามคือ: ทำไมค่าใช้จ่าย 'ความเสี่ยง' jQuery หากสินทรัพย์ที่แข็งแกร่งที่สุดสามารถทำได้ด้วย JavaScript ที่บริสุทธิ์? ฉันรู้ว่า jQuery มีมากกว่าตัวเลือก CSS เช่น AJAX ข้ามเบราว์เซอร์ที่ดีกิจกรรมที่แนบมาเป็นต้น แต่ส่วนการสืบค้นมันเป็นส่วนสำคัญของความแข็งแกร่งของ jQuery! ความคิดใด ๆ

8
เลือกองค์ประกอบตามการจับคู่ที่แน่นอนของเนื้อหา
เอาล่ะฉันสงสัยว่ามีวิธีที่จะทำให้:contains()ตัวเลือกของ jQuery เพื่อเลือกองค์ประกอบที่มีเฉพาะสตริงที่พิมพ์ ตัวอย่างเช่น - <p>hello</p> <p>hello world</p> $('p:contains("hello")').css('font-weight', 'bold'); ตัวเลือกจะเลือกpองค์ประกอบทั้งสองและทำให้เป็นตัวหนา แต่ฉันต้องการให้เลือกเฉพาะองค์ประกอบแรก

9
การเปลี่ยน CSS ขององค์ประกอบย่อยเมื่อพาวเวอร์หลัก
ก่อนอื่นฉันสมมติว่ามันซับซ้อนเกินไปสำหรับ CSS3 แต่ถ้ามีวิธีแก้ปัญหาในบางแห่งฉันก็อยากจะไปกับมันแทน HTML นั้นค่อนข้างตรงไปตรงมา <div class="parent"> <div class="child"> Text Block 1 </div> </div> <div class="parent"> <div class="child"> Text Block 2 </div> </div> div ลูกถูกตั้งค่าให้แสดง: none; โดยค่าเริ่มต้น แต่เปลี่ยนเป็น display: block; เมื่อวางเมาส์ไว้เหนือ div parent ปัญหาคือมาร์กอัปนี้ปรากฏในหลาย ๆ ที่บนเว็บไซต์ของฉันและฉันต้องการให้เด็กแสดงถ้าเมาส์อยู่เหนือมันและไม่ใช่ถ้าเมาส์อยู่เหนือผู้ปกครองคนอื่น ๆ (พวกเขาทั้งหมดมีคลาสเดียวกัน ชื่อและไม่มี ID) ฉันพยายามใช้$(this)และ.children()ไม่เป็นประโยชน์ $('.parent').hover(function(){ $(this).children('.child').css("display","block"); }, function() { $(this).children('.child').css("display","none"); });

6
วิธีรับอินพุตย่อยทั้งหมดขององค์ประกอบ div (jQuery)
HTML: <div id="panel"> <table> <tr> <td><input id="Search_NazovProjektu" type="text" value="" /></td> </tr> <tr> <td><input id="Search_Popis" type="text" value="" /></td> </tr> </table> </div> ฉันต้องเลือกอินพุตทั้งหมดใน div เฉพาะ สิ่งนี้ไม่ทำงาน: var i = $("#panel > :input");

3
ตรวจสอบว่าบรรพบุรุษของคุณมีคลาสที่ใช้ jQuery หรือไม่
มีวิธีใดบ้างใน jQuery ในการตรวจสอบว่ามีผู้ปกครองผู้ปกครองผู้ยิ่งใหญ่ผู้ยิ่งใหญ่ที่มีชั้นเรียนหรือไม่ ฉันมีโครงสร้างมาร์กอัพที่ทำให้ฉันทำสิ่งนี้ในรหัส: $(elem).parent().parent().parent().parent().hasClass('left') อย่างไรก็ตามสำหรับการอ่านรหัสฉันต้องการหลีกเลี่ยงสิ่งนี้ มีวิธีที่จะพูดว่า "ผู้ปกครอง / ปู่ย่าตายาย / ปู่ย่าตายายใด ๆ มีชั้นนี้"? ฉันใช้ jQuery 1.7.2

4
การรวมตัวเลือกคลาสและตัวเลือกแอททริบิวกับ jQuery
เป็นไปได้หรือไม่ที่จะรวมทั้งตัวเลือกคลาสและตัวเลือกคุณลักษณะเข้ากับ jQuery? ตัวอย่างเช่นกำหนด HTML ต่อไปนี้: <TABLE> <TR class="myclass" reference="12345"><TD>Row 1</TD></TR> <TR class="otherclass" reference="12345"><TD>Row 2</TD></TR> <TR class="myclass" reference="12345"><TD>Row 3</TD></TR> <TR class="myclass" reference="54321"><TD>Row 4</TD></TR> </TABLE> ตัวเลือกใดที่ฉันสามารถใช้เพื่อเลือกแถว 1 และ 3 เท่านั้น ฉันเหนื่อย: $(".myclass [reference=12345]") // returns nothing $(".myclass, [reference=12345]") // returns all 4 rows (yes, I know the comma means 'or') ฉันแน่ใจว่าคำตอบนั้นง่ายมากและฉันได้ลองค้นหาฟอรัมและเอกสารของ jQuery …

6
jQuery: เลือกองค์ประกอบทั้งหมดของคลาสที่กำหนดยกเว้นรหัสเฉพาะ
นี่อาจจะค่อนข้างง่าย ฉันต้องการที่จะเลือกองค์ประกอบทั้งหมดของชั้นได้รับthisClassยกเว้นที่ id thisIdคือ เช่นสิ่งที่เทียบเท่ากับ (ที่ไหน - / ลบหมายถึงลบ): $(".thisClass"-"#thisId").doAction();

12
มี jQuery ที่ไม่คำนึงถึงขนาดตัวพิมพ์: ประกอบด้วยตัวเลือกหรือไม่?
มีรุ่นที่ไม่ตรงตามตัวพิมพ์: ประกอบด้วยตัวเลือก jQuery หรือฉันควรทำงานด้วยตนเองโดยการวนลูปมากกว่าองค์ประกอบทั้งหมดและเปรียบเทียบ. text () กับสตริงของฉันหรือไม่

7
ใน jQuery ฉันจะตั้งค่าคุณสมบัติ "ด้านบนซ้าย" ขององค์ประกอบที่มีค่าตำแหน่งสัมพันธ์กับแม่และไม่ใช่เอกสารได้อย่างไร
.offset([coordinates])เมธอดตั้งค่าพิกัดขององค์ประกอบ แต่สัมพันธ์กับเอกสารเท่านั้น จากนั้นฉันจะตั้งค่าพิกัดขององค์ประกอบ แต่สัมพันธ์กับแม่ได้อย่างไร ฉันพบว่า.position()วิธีการรับเฉพาะค่า "บนสุด, ซ้าย" ที่สัมพันธ์กับ parent แต่ไม่ได้ตั้งค่า ฉันลองด้วย $("#mydiv").css({top: 200, left: 200}); แต่ไม่ทำงาน

5
ฉันจะเลือกรายการที่มีคลาสภายใน DIV ได้อย่างไร
ฉันมี HTML ต่อไปนี้: <div id="mydiv"> <div class="myclass"></div> </div> ฉันต้องการที่จะสามารถใช้ตัวเลือกที่เลือกภายในdivแต่เฉพาะสำหรับmydivภาชนะ ฉันจะทำให้สำเร็จด้วย jQuery ได้อย่างไร

6
jQuery .on () วิธีการที่มีตัวจัดการเหตุการณ์หลายตัวในตัวเลือกเดียว
พยายามหาวิธีใช้เมธอด Jquery .on () กับตัวเลือกเฉพาะที่มีหลายเหตุการณ์ที่เกี่ยวข้อง ก่อนหน้านี้ฉันใช้เมธอด. live () แต่ไม่ค่อยแน่ใจว่าจะทำสำเร็จแบบเดียวกันกับ. on () ได้อย่างไร โปรดดูรหัสของฉันด้านล่าง: $("table.planning_grid td").live({ mouseenter:function(){ $(this).parent("tr").find("a.delete").show(); }, mouseleave:function(){ $(this).parent("tr").find("a.delete").hide(); }, click:function(){ //do something else. } }); ฉันรู้ว่าสามารถกำหนดกิจกรรมต่างๆได้โดยโทร: $("table.planning_grid td").on({ mouseenter:function(){ //see above }, mouseleave:function(){ //see above } click:function(){ //etc } }); แต่ฉันเชื่อว่าการใช้. on () อย่างเหมาะสมจะเป็นเช่นนั้น: $("table.planning_grid").on('mouseenter','td',function(){}); มีวิธีที่จะทำให้สำเร็จหรือไม่? หรือแนวทางปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ฉันลองใช้รหัสด้านล่าง …

2
jQuery ค้นหาองค์ประกอบหลักแรกที่มีคำนำหน้าคลาสเฉพาะ
ฉันต้องการรับผู้ปกครองคนแรกที่มีคำนำหน้าคลาสเฉพาะสมมติว่า: <div class="div-a3332"> <div class="div-a89892"> <p> <div class="div-b2"> <div id="divid">hi</div> </div> </p> </div> </div> ตัวอย่างเช่นองค์ประกอบปัจจุบันของฉันคือ#dividและฉันต้องการค้นหาองค์ประกอบแรกที่มีคำนำหน้าคลาส div-a โดยพื้นฐานแล้วมันจะเลือก: <div class="div-a89892">


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