ฉันจะรับชื่อองค์ประกอบด้วย jQuery ได้อย่างไร


130

ฉันจะรับคุณสมบัติชื่อขององค์ประกอบ HTML ด้วย jQuery ได้อย่างไร


html บางส่วนหรือข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับองค์ประกอบที่คุณต้องการชื่อจะช่วยให้เราให้คำตอบที่เฉพาะเจาะจงมากขึ้น
Patricia

4
ใช้.prop()เพื่อรับคุณสมบัติและ.attr()รับแอตทริบิวต์ อย่าใช้.attr()เพื่อรับทรัพย์ตามที่ทุกคนแนะนำ เรากำลังทำงานกับ JavaScript ที่นี่ไม่ใช่มาร์กอัป HTML

11
ควรเปิดใหม่ ผู้ถามควรได้รับรางวัลสำหรับการเข้าถึงประเด็นและไม่นำหน้าด้วยบางอย่างเช่น "ฉันมีเว็บไซต์นี้ที่ไหน ... "
cantera

@ cantera25: ขอบคุณที่ชี้ให้เห็น ..
Poonam Bhatt

คำตอบ:


221

คุณควรใช้attr('name')แบบนี้

 $('#yourid').attr('name')

คุณควรใช้ตัวเลือกรหัสหากคุณใช้ตัวเลือกคลาสคุณพบปัญหาเนื่องจากมีการส่งคืนคอลเล็กชัน


8
ฉันเพิ่งได้รับค่าที่ไม่ได้กำหนดเมื่อฉันใช้สิ่งนี้หรือ. prop ()
HorusKol

1
มีเหตุผลใดที่จะชอบ attr ('name') มากกว่า prop ('name')?
dallin

ฉันใช้$(this).attr('name');กับตัวเลือกชั้นเรียน$('.jobSelect').change(function() {และไม่พบปัญหา
Ömer

14

เพื่ออ่านคุณสมบัติของวัตถุที่คุณใช้.propertyNameหรือ["propertyName"]สัญกรณ์

สิ่งนี้ไม่แตกต่างกันสำหรับองค์ประกอบ

var name = $('#item')[0].name;
var name = $('#item')[0]["name"];

หากคุณต้องการใช้jQueryวิธีการโดยเฉพาะคุณจะต้องใช้.prop()วิธีนี้

var name = $('#item').prop('name');

โปรดทราบว่าคุณสมบัติและคุณสมบัติไม่จำเป็นต้องเหมือนกัน


ฉันคิดว่าprop()มีไว้สำหรับคุณสมบัติบูลีนเช่นcheckedไม่ใช่สำหรับแอตทริบิวต์
Nicola Peluchetti

2
@NicolaPeluchetti: .prop()มีไว้สำหรับคุณสมบัติใด ๆ ในองค์ประกอบ DOM .attr()เป็นวิธีการที่สับสนมากซึ่งมีการเปลี่ยนแปลงพฤติกรรมระหว่างรีลีสที่แตกต่างกันบางครั้งก็ให้คุณสมบัติแก่คุณในบางครั้งคุณสมบัติ ไม่ว่าจะด้วยวิธีใดก็มีความแตกต่างระหว่างคุณลักษณะและคุณสมบัติที่ควรสังเกตโดยใช้วิธีการที่เหมาะสม

3
@NicolaPeluchetti: นี่คือตัวอย่างที่แสดงให้เห็นถึงความแตกต่างระหว่างคุณสมบัติและคุณสมบัติ

10
$('someSelectorForTheElement').attr('name');

คุณควรใช้ตัวเลือกรหัสหากคุณใช้ตัวเลือกคลาสคุณพบปัญหาเนื่องจากมีการส่งคืนคอลเล็กชัน
Nicola Peluchetti

2
id จะเฉพาะเจาะจงมากที่สุดใช่ แต่หากไม่มี html และไม่มีรายละเอียดทั้งหมดในคำถามก็ยากที่จะบอกว่าควรใช้ตัวเลือกใด
Patricia

5

ลองเล่นกับตัวอย่าง jsFiddleนี้ :

HTML:

<p id="foo" name="bar">Hello, world!</p>

jQuery:

$(function() {
    var name = $('#foo').attr('name');

    alert(name);
    console.log(name);
});

สิ่งนี้ใช้ . attr ()ของ jQueryเพื่อรับค่าสำหรับองค์ประกอบแรกในชุดที่ตรงกัน

ในขณะที่ไม่เฉพาะ jQuery ผลที่ได้จะแสดงเป็นแจ้งเตือนพร้อมท์และเขียนไปยังเบราว์เซอร์ของคอนโซล



0

วิธีการ . attr ()อนุญาตให้รับค่าแอตทริบิวต์ขององค์ประกอบแรกในวัตถุ jQuery:

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