Bulunan her düğümün üzerinde yineleme yapabilir ve bir eşleşme bulmak için sınıfların üzerinde yineleyebilirsiniz; bulursa, sınıf çıkarıp log:
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);
}
});
});
Not div[class*="some-class-"]
gibi bir seçici oldukça pahalı olduğunu ve yine ekstra işleme gerçekleştirmek için gereken zamandan beri, sadece her div
etiketlerini yineleme ve bunları işlemek için daha kolay olurdu :
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);
}
});
});
Modern tarayıcılar yineleme için sınıf isimleri işlemek için kullanabileceği Element.classList
ve Array.forEach
maruz:
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));
});
Sorulara cevaplar için: [JQuery ile Öğe Sınıfı Listesi Alın] (http://stackoverflow.com/questions/1227286/get-class-list-for-element-with-jquery). – Trylks
@Trylks Harika! Bu aslında benim problemimi daha da iyi bir yöntemle çözüyor! Teşekkürler! (Ancak, bu ismi çıkarmak için uzun bir yol) – Atadj