Tôi muốn nhận tất cả các phần tử/nút trong trang HTML có chứa các thuộc tính bắt đầu bằng thứ gì đó (một lần nữa, tên thuộc tính bắt đầu bằng thứ gì đó, không phải giá trị của chúng!). Ví dụ: TinyMCE có xu hướng thêm thuộc tính tùy chỉnh vào các yếu tố tùy chỉnh mà bạn lưu, chẳng hạn như "mce_style"
, "mce_href"
, "mce_bogus"
, v.v. Tôi muốn có một cái gì đó như bộ chọn CSS3 cho các giá trị thuộc tính, [attr^="mce_"]
, nhưng không cho giá trị tên thuộc tính.Cách lấy tất cả các thuộc tính HTML bắt đầu bằng thứ gì đó (tên thuộc tính, * không * giá trị của chúng!)
Tất nhiên, tôi có thể lặp qua tất cả các nút DOM và thuộc tính của chúng và kiểm tra từng cái một, nhưng tôi đã tự hỏi liệu có một cách hiệu quả hơn hay không.
Xin vui lòng không cho tôi câu trả lời TinyMCE cụ thể, tôi khá chắc chắn có một lá cờ mà sẽ ngăn chặn TinyMCE để lưu các thuộc tính này, nhưng câu hỏi là chung chung.
Tôi có cảm giác rằng bạn sẽ phải lặp qua từng phần tử và xem qua từng thuộc tính. Thậm chí 'document.querySelectorAll()' không có tùy chọn 'attribute-name-starts-with'. Câu hỏi thú vị. –
Tôi không biết gì về TinyMCE, nhưng nếu có một số cách để xác định các thành phần có * bất kỳ thuộc tính nào thì bạn có thể thu hẹp tìm kiếm của mình thành tập hợp con trước, sau đó xem từng thuộc tính của tập hợp con, nhanh hơn nhiều so với nhìn toàn bộ mái vòm. Nghĩa là, có một số thuộc tính sẽ luôn được thêm vào một trong các mục tiêu của bạn không? Nếu vậy thì hãy tìm điều đó trước. –
@jamietre Yeah, như xa như TinyMCE là có liên quan, bạn có thể giả định ví dụ 'mce_href' sẽ luôn được áp dụng cho các phần tử' a', vì vậy bạn có thể thu hẹp tìm kiếm của mình. Nhưng như tôi đã nói trong câu cuối, tôi không tìm kiếm câu trả lời cụ thể cho TinyMCE, tôi muốn có một giải pháp chung, và đánh giá từ những câu trả lời tôi đã có, không có cách nào khác ngoài việc lặp qua tất cả các phần tử và thuộc tính của họ. Pitty. – AsGoodAsItGets