발견 된 각 노드를 반복하고 클래스를 반복하여 일치하는 항목을 찾을 수 있습니다. 발견하는 경우, 클래스를 제거하고 로그 :
var found = [];
$('div[class*="some-class-"]').each(function() {
var classes = this.className.split(/\s+/),
$this = $(this);
$.each(classes, function(i, name) {
if (name.indexOf('some-class-') === 0) {
$this.removeClass(name);
found.push(name);
}
});
});
참고 div[class*="some-class-"]
같은 선택 꽤 비싼 것을 당신이 어떻게 든 추가 처리를 수행 할 필요가 있기 때문에, 그냥 모든 div
태그를 반복하고이를 처리하기 쉬울 것 :
var elements = document.getElementsByTagName('div'),
found = [];
$.each(elements, function(i, element) {
var classes = element.className.split(/\s+/);
$.each(classes, function(i, name) {
if (name.indexOf('some-class-') === 0) {
$(element).removeClass(name);
found.push(name);
}
});
});
현대 브라우저는 반복에 대해 당신이 클래스 이름을 조작하는 데 사용할 수있는 Element.classList
및 Array.forEach
노출 :
var found = [];
[].forEach.call(document.getElementsByTagName('div'), function(element) {
(function(names, i) {
while (i < names.length) {
var name = names[i];
if (name.indexOf('some-class-') === 0) {
names.remove(name);
found.push(name);
} else {
++i;
}
}
}(element.classList, 0));
});
답변보기 : [jQuery를 사용하는 요소의 클래스 목록 가져 오기] (http://stackoverflow.com/questions/1227286/get-class-list-for-element-with-jquery). – Trylks
@Trylks 멋지다! 그건 실제로 더 나은 방법으로 내 문제를 해결합니다! 감사! (그러나이 이름을 추출하는 데는 먼 길입니다.) – Atadj