Hướng dẫn how do you set data attribute using javascript? - làm thế nào để bạn thiết lập thuộc tính dữ liệu bằng cách sử dụng javascript?

HTML được thiết kế với khả năng mở rộng trong tâm trí đối với dữ liệu nên được liên kết với một yếu tố cụ thể nhưng không cần có bất kỳ ý nghĩa xác định nào. data-* Các thuộc tính cho phép chúng tôi lưu trữ thêm thông tin về các yếu tố HTML tiêu chuẩn, ngữ nghĩa mà không có các bản hack khác như thuộc tính không chuẩn hoặc các thuộc tính bổ sung trên DOM.

Cú pháp HTML

Cú pháp đơn giản. Bất kỳ thuộc tính nào trên bất kỳ phần tử nào có tên thuộc tính bắt đầu bằng data- là thuộc tính dữ liệu. Giả sử bạn có một bài viết và bạn muốn lưu trữ một số thông tin bổ sung không có bất kỳ đại diện trực quan nào. Chỉ cần sử dụng các thuộc tính data cho điều đó:


Truy cập JavaScript

Đọc các giá trị của các thuộc tính này trong JavaScript cũng rất đơn giản. Bạn có thể sử dụng getAttribute[] với tên HTML đầy đủ của chúng để đọc chúng, nhưng tiêu chuẩn xác định một cách đơn giản hơn: A DOMStringMap bạn có thể đọc qua thuộc tính dataset.

Để nhận thuộc tính data thông qua đối tượng dataset, hãy lấy thuộc tính bằng một phần của tên thuộc tính sau data- [lưu ý rằng các dấu gạch ngang được chuyển đổi thành Camelcase].

const article = document.querySelector["#electric-cars"];
// The following would also work:
// const article = document.getElementById["electric-cars"]

article.dataset.columns; // "3"
article.dataset.indexNumber; // "12314"
article.dataset.parent; // "cars"

Mỗi thuộc tính là một chuỗi và có thể được đọc và viết. Trong cài đặt trường hợp trên

const article = document.querySelector["#electric-cars"];
// The following would also work:
// const article = document.getElementById["electric-cars"]

article.dataset.columns; // "3"
article.dataset.indexNumber; // "12314"
article.dataset.parent; // "cars"
3 sẽ thay đổi thuộc tính đó thành
const article = document.querySelector["#electric-cars"];
// The following would also work:
// const article = document.getElementById["electric-cars"]

article.dataset.columns; // "3"
article.dataset.indexNumber; // "12314"
article.dataset.parent; // "cars"
4.

Truy cập CSS

Lưu ý rằng, vì các thuộc tính dữ liệu là các thuộc tính HTML đơn giản, bạn thậm chí có thể truy cập chúng từ CSS. Ví dụ: để hiển thị dữ liệu cha mẹ trên bài viết, bạn có thể sử dụng nội dung được tạo trong CSS với hàm

const article = document.querySelector["#electric-cars"];
// The following would also work:
// const article = document.getElementById["electric-cars"]

article.dataset.columns; // "3"
article.dataset.indexNumber; // "12314"
article.dataset.parent; // "cars"
5:

article::before {
  content: attr[data-parent];
}

Bạn cũng có thể sử dụng các bộ chọn thuộc tính trong CSS để thay đổi kiểu theo dữ liệu:

article[data-columns="3"] {
  width: 400px;
}
article[data-columns="4"] {
  width: 600px;
}

Bạn có thể thấy tất cả điều này làm việc cùng nhau trong ví dụ JSBIN này.

Các thuộc tính dữ liệu cũng có thể được lưu trữ để chứa thông tin liên tục thay đổi, như điểm số trong một trò chơi. Sử dụng Truy cập CSS và Truy cập JavaScript ở đây, điều này cho phép bạn xây dựng một số hiệu ứng tiện lợi mà không phải viết các thói quen hiển thị của riêng bạn. Xem Screencast này để biết ví dụ sử dụng chuyển đổi nội dung và CSS được tạo [ví dụ JSBIN].

Giá trị dữ liệu là chuỗi. Giá trị số phải được trích dẫn trong bộ chọn để tạo kiểu có hiệu lực.

Vấn đề

Không lưu trữ nội dung nên hiển thị và có thể truy cập trong các thuộc tính dữ liệu, bởi vì công nghệ hỗ trợ có thể không truy cập chúng. Ngoài ra, trình thu thập dữ liệu tìm kiếm không thể lập chỉ mục các giá trị của các thuộc tính dữ liệu.

Các vấn đề chính cần xem xét là hỗ trợ và hiệu suất của Internet Explorer. Internet Explorer 11+ cung cấp hỗ trợ cho tiêu chuẩn, nhưng tất cả các phiên bản trước đó không hỗ trợ dataset. Để hỗ trợ IE 10 và dưới bạn cần truy cập các thuộc tính dữ liệu với getAttribute[] thay thế. Ngoài ra, hiệu suất của các thuộc tính đọc data-* so với lưu trữ dữ liệu trong một đối tượng JavaScript thông thường là kém.

Điều đó nói rằng, đối với siêu dữ liệu liên quan đến phần tử tùy chỉnh, chúng là một giải pháp tuyệt vời.

Trong Firefox 49.0.2 [và có lẽ các phiên bản sớm hơn/sau này], các thuộc tính dữ liệu vượt quá 1022 ký tự sẽ không được đọc bởi JavaScript [ECMAScript 4].

Xem thêm

  • Bài viết này được điều chỉnh từ việc sử dụng các thuộc tính dữ liệu trong JavaScript và CSS trên hacks.mozilla.org.
  • Các thuộc tính tùy chỉnh cũng được hỗ trợ trong SVG 2; Xem
    const article = document.querySelector["#electric-cars"];
    // The following would also work:
    // const article = document.getElementById["electric-cars"]
    
    article.dataset.columns; // "3"
    article.dataset.indexNumber; // "12314"
    article.dataset.parent; // "cars"
    
    9 và data-* để biết thêm thông tin.
  • Cách sử dụng các thuộc tính dữ liệu HTML [sitePoint]

Làm thế nào để bạn đặt một thuộc tính dữ liệu?

Thêm một thuộc tính dữ liệu là dễ dàng. Bất kỳ phần tử HTML nào cũng có thể có bất kỳ số lượng thuộc tính dữ liệu nào được thêm vào thẻ mở của nó. Chúng tôi chỉ cần nhập dữ liệu- theo sau là tên của thuộc tính của chúng tôi vào thẻ mở của phần tử cùng với bất kỳ thuộc tính nào khác mà chúng tôi đã sử dụng.type data- followed by the name of our attribute into the element's opening tag alongside any other attributes we're already using.

Thuộc tính dữ liệu trong JavaScript là gì?

Thuộc tính dữ liệu-* cho chúng ta khả năng nhúng các thuộc tính dữ liệu tùy chỉnh trên tất cả các phần tử HTML.Dữ liệu được lưu trữ [tùy chỉnh] sau đó có thể được sử dụng trong JavaScript của trang để tạo trải nghiệm người dùng hấp dẫn hơn [mà không có bất kỳ cuộc gọi AJAX hoặc truy vấn cơ sở dữ liệu phía máy chủ nào].gives us the ability to embed custom data attributes on all HTML elements. The stored [custom] data can then be used in the page's JavaScript to create a more engaging user experience [without any Ajax calls or server-side database queries].

Thuộc tính đặt trong JavaScript là gì?

Phần tử.setAttribution [] Đặt giá trị của một thuộc tính trên phần tử được chỉ định.Nếu thuộc tính đã tồn tại, giá trị được cập nhật;Mặt khác, một thuộc tính mới được thêm vào với tên và giá trị được chỉ định.Để có được giá trị hiện tại của một thuộc tính, hãy sử dụng getAttribution [];Để xóa một thuộc tính, hãy gọi RemoveAtribution [].Sets the value of an attribute on the specified element. If the attribute already exists, the value is updated; otherwise a new attribute is added with the specified name and value. To get the current value of an attribute, use getAttribute[] ; to remove an attribute, call removeAttribute[] .

Thuộc tính trong JavaScript với ví dụ là gì?

Thuộc tính: Một tập hợp các đối tượng thuộc về lớp ATT tích hợp, với các thuộc tính tên và giá trị.Các thuộc tính HTML có các tính năng sau: Tên của chúng không phân biệt Case [ID giống như ID].Giá trị của chúng luôn luôn là chuỗi.a collection of objects that belong to a built-in Attr class, with name and value properties. HTML attributes have the following features: Their name is case-insensitive [ id is same as ID ]. Their values are always strings.

Bài Viết Liên Quan

Chủ Đề