Tôi cần tìm tất cả các phần tử có giá trị thuộc tính đặc biệt.
Đây là div tôi cần tìm (tôi có nhiều div ..)
<div imageId='imageN'>...
Tôi chỉ cần lặp qua các div có imageId='imageN'
Tôi cần tìm tất cả các phần tử có giá trị thuộc tính đặc biệt.
Đây là div tôi cần tìm (tôi có nhiều div ..)
<div imageId='imageN'>...
Tôi chỉ cần lặp qua các div có imageId='imageN'
class="image imageN"
nếu điều đó hữu ích.
Câu trả lời:
$('div[imageId="imageN"]').each(function() {
// `this` is the div
});
Để kiểm tra sự tồn tại duy nhất của thuộc tính, bất kể giá trị nào, bạn có thể sử dụng bộ chọn thứ thay thế: $('div[imageId]')
Mặc dù nó không trả lời chính xác câu hỏi, nhưng tôi đã đến đây khi tìm kiếm cách lấy bộ sưu tập các phần tử (các tên thẻ có khả năng khác nhau) chỉ có một tên thuộc tính nhất định (không lọc theo giá trị thuộc tính). Tôi thấy rằng những điều sau đây hoạt động tốt cho tôi:
$("*[attr-name]")
Hy vọng điều đó sẽ giúp ai đó tình cờ truy cập vào trang này tìm kiếm điều tương tự như tôi :).
Cập nhật: Có vẻ như dấu hoa thị là không bắt buộc, tức là dựa trên một số bài kiểm tra cơ bản, những điều sau đây có vẻ tương đương với những điều trên (cảm ơn Matt đã chỉ ra điều này):
$("[attr-name]")
$("[attr-name]")
? (tức là không *
)
$("[data-toggle='modal']")
Bạn có thể sử dụng giá trị một phần của thuộc tính để phát hiện phần tử DOM bằng cách sử dụng dấu (^). Ví dụ bạn có các div như thế này:
<div id="abc_1"></div>
<div id="abc_2"></div>
<div id="xyz_3"></div>
<div id="xyz_4"></div>...
Bạn có thể sử dụng mã:
var abc = $('div[id^=abc]')
Điều này sẽ trả về một mảng DOM gồm các div có id bắt đầu bằng abc
:
<div id="abc_1"></div>
<div id="abc_2"></div>
Đây là bản demo: http://jsfiddle.net/mCuWS/
class="imageN"
vì HTML hợp lệ. Hoặcdata-imageId="imageN"
vì lợi ích của HTML5 hợp lệ. Với cái trước, bạn có thể sử dụng bộ chọn lớp.