ตัวอย่างเช่นต่อไปนี้เลือกส่วนที่มี id = "2":
row = $("body").find("#2");
ฉันจะทำสิ่งนี้ได้อย่างไร:
row_id = 5;
row = $("body").find(row_id);
ไวยากรณ์ข้างต้นก่อให้เกิดข้อผิดพลาด ฉันตรวจสอบเอกสาร jQuery และคำตอบที่นี่โดยไม่ประสบความสำเร็จ
ตัวอย่างเช่นต่อไปนี้เลือกส่วนที่มี id = "2":
row = $("body").find("#2");
ฉันจะทำสิ่งนี้ได้อย่างไร:
row_id = 5;
row = $("body").find(row_id);
ไวยากรณ์ข้างต้นก่อให้เกิดข้อผิดพลาด ฉันตรวจสอบเอกสาร jQuery และคำตอบที่นี่โดยไม่ประสบความสำเร็จ
คำตอบ:
row = $("body").find('#' + row_id);
ที่สำคัญกว่าการทำร่างกายเพิ่มเติมค้นหาไม่มีผลกระทบต่อประสิทธิภาพ วิธีที่เหมาะสมในการดำเนินการคือ:
row = $('#' + row_id);
วิธีที่สั้นที่สุดคือ:
$("#" + row_id)
การ จำกัด การค้นหาไว้ที่ร่างกายไม่ได้มีประโยชน์ใด ๆ
นอกจากนี้คุณควรพิจารณาเปลี่ยนชื่อของคุณid
เป็นสิ่งที่มีความหมายมากขึ้น (และสอดคล้องกับ HTML ตามคำตอบของ Paolo) โดยเฉพาะอย่างยิ่งหากคุณมีชุดข้อมูลอื่นที่ต้องตั้งชื่อด้วย
ทำ$('body').find();
ไม่ได้เป็นสิ่งที่จำเป็นเมื่อมองขึ้นไปโดยใช้ ID; ไม่มีการเพิ่มประสิทธิภาพ
โปรดทราบว่าการมี ID ที่ขึ้นต้นด้วยตัวเลขไม่ใช่ HTML ที่ถูกต้อง :
โทเค็น ID และ NAME ต้องขึ้นต้นด้วยตัวอักษร ([A-Za-z]) และอาจตามด้วยตัวอักษรตัวเลข ([0-9]) ขีดกลาง ("-") ขีดล่าง ("_") , เครื่องหมายทวิภาค (":") และจุด (".")
คุณสามารถทำได้ดังนี้:
row_id = 5;
row = $("body").find('#'+row_id);
มีสองปัญหากับรหัสของคุณ
ฉันไม่รู้มากเกี่ยวกับ jQuery แต่ลองทำสิ่งนี้:
row_id = "#5";
row = $("body").find(row_id);
แก้ไข: แน่นอนถ้าตัวแปรเป็นตัวเลขคุณต้องเพิ่ม"#"
ที่ด้านหน้า:
row_id = 5
row = $("body").find("#"+row_id);