我已經繼承了一些jQuery和HTML,並且需要確定任何HTML元素是否具有任何值的類名。我已經閱讀了幾個主題和谷歌搜索,但找不到有用的東西。 所以在僞代碼我想要的是:發現任何元素在jQuery中是否有任何類
Loop through all HTML elements
If any of them have any class at all:
Get their class name as a string
希望是有道理的!
我已經繼承了一些jQuery和HTML,並且需要確定任何HTML元素是否具有任何值的類名。我已經閱讀了幾個主題和谷歌搜索,但找不到有用的東西。 所以在僞代碼我想要的是:發現任何元素在jQuery中是否有任何類
Loop through all HTML elements
If any of them have any class at all:
Get their class name as a string
希望是有道理的!
嘗試:
$('*').each(function() {
if ($(this).hasClass()) {
var class_name = $(this).attr('class');
// do something
}
});
爲什麼你會想這樣做,我不知道。這是非常低效
var classObj = {};
$('*').each(function(){
var cNames = this.className.split(' ');
for(var i=0, l=cNames.length; i<l; i+=1){
classObj[cNames[i]] = true;
}
});
這將使你的對象(classObj
)每類出現在文件的屬性,所以類名稱不會多次出現,如果有與相同的元素在文檔中的類。我真的不會這樣做,或者在這方面看到任何用例。
謝謝你的時間,我很感謝:) – Kev
您可以使用這樣的事情:
$("[class]").each(function(){
var className = $(this).attr("class");
})
演示:http://jsfiddle.net/L5WAV/1/(見控制檯的結果 - 兩個div應該可以找到)
謝謝你的時間,我很感激它:) – Kev
要取得類,你可以的所有元素使用$('*[class]')
:
$('*[class]').each(function(){
// do what you want
});
Y你甚至可以用$('*[class]').length
來輕鬆計數。
謝謝你的時間也,我很欣賞它:) – Kev
對於它的價值:
$(this).hasClass()
總是返回假。
$("[class]")
也不管用,因爲它返回像
<p class=""> my p </p>
的jsfiddle元素都在這裏:http://jsfiddle.net/JZ8LV/1/
解決方案:
$(this).hasClass('')
回報真的元件而不一類,包括那些形式
<p class=""> my p </p>
所以
$('*').each(function() {
if ($(this).hasClass('') === false) {
$("body").append($(this).prop("tagName") + " has a proper class defined <br/>");
}
});
返回所有的標籤具有定義適當的類。
的jsfiddle:http://jsfiddle.net/2Rtj5/
不是一個直接的問題,但我需要它,所以在這裏也適用於未來的用戶。
如果您想了解是否任何元素都有一個特定類,您可以使用此功能:
function find_any_element(className) {
var found = false;
$('*').each(function() {
if ($(this).hasClass(className)) {
var class_name = $(this).attr('class');
alert("There is an element with this class: " + class_name);
found = true;
}
});
if(!found) {
alert("No element with className '" + className + "' found.");
}
}
是啊,這是一個相當繁重的操作。我敢打賭,有一個更好的方法來解決這個問題。 – isherwood
謝謝:)它不是我想要特別做的事情。我不是jQuery專家,但隨着我繼承的代碼,我認爲它可能是唯一的方法來做我需要的和客戶端(他自己是一個有才華的業餘編碼器)想要的。 我已經設法將類的數量降到6,所以我希望這會減少開銷。 再次感謝,我很感激。 – Kev
經過測試,並不適用於jQuery 3.1.1。 – TinkerTenorSoftwareGuy