.data ของ jQuery () ทำสิ่งต่าง ๆ สองอย่าง แต่จะไม่เพิ่มข้อมูลลงใน DOM เป็นแอตทริบิวต์ เมื่อใช้เพื่อคว้า data data สิ่งแรกที่ทำคือสร้างวัตถุข้อมูล jQuery และตั้งค่าของวัตถุเป็น data data หลังจากนั้นก็แยกออกจาก data attribute เป็นหลัก
ตัวอย่าง:
<div data-foo="bar"></div>
หากคุณคว้าค่าของคุณสมบัติที่ใช้.data('foo')
มันจะกลับ "บาร์" ตามที่คุณคาดหวัง จากนั้นถ้าคุณเปลี่ยนแอตทริบิวต์ที่ใช้.attr('data-foo', 'blah')
และต่อมาใช้.data('foo')
ในการคว้าคุ้มค่าก็จะกลับมา "บาร์" แม้ว่า DOM data-foo="blah"
กล่าวว่า หากคุณใช้.data()
เพื่อตั้งค่ามันจะเปลี่ยนค่าในวัตถุ jQuery แต่ไม่ได้อยู่ใน DOM
โดยทั่วไป.data()
มีไว้สำหรับการตั้งค่าหรือตรวจสอบค่าข้อมูลของวัตถุ jQuery หากคุณกำลังตรวจสอบและยังไม่มีมันจะสร้างค่าตามข้อมูลคุณลักษณะที่อยู่ใน DOM .attr()
ใช้สำหรับตั้งค่าหรือตรวจสอบค่าแอตทริบิวต์ขององค์ประกอบ DOM และจะไม่แตะค่าข้อมูล jQuery หากคุณต้องการพวกเขาทั้งสองจะเปลี่ยนคุณควรใช้ทั้งสองและ.data()
.attr()
มิฉะนั้นติดกับอย่างใดอย่างหนึ่ง
.data()
.attr()