1

jQuery .attr('class')を使用していると、'class1 class2 class3'が返されます。これらは別々のクラスであると想定されています。たとえば、class1の.cssを変更したい場合など、クラスの1つを選択するにはどうすればよいですか。返されたクラス名をどのように反復するのでしょうか、これらは分割する必要のある文字列ですか、それともこれらのオブジェクトですか?ありがとう!

ところで、私のhtmlは次のようになります。

<td class ="class1 class2 class3">

返された.attr('class')で.spiltを使用して動作させました。私の目標は、2番目のクラスを取得し、それに.css()を実行することです。

4

6 に答える 6

4

classorclassNameプロパティは、スペースで区切られたクラス名のリストを1つの文字列で返します。その属性を手動で操作する場合は、文字列を手動で解析して、結果のクラス名にする必要があります。これは文字列であり、個々のオブジェクトではありません。

幸い、jQueryを使用している場合、自分でそれを行う必要はほとんどありません。単一のクラス名を追加、削除、または変更する場合は、これらのjQueryメソッドを組み合わせて使用​​すると、すべての解析が実行されます。

.hasClass(classname)
.replaceClass(oldName, newName)
.removeClass(classname)
.addClass(classname)

1つのクラスを削除して別のクラスを追加するには、このように2つの関数をチェーンすることは珍しくありません。

x$.removeClass("foo").addClass("bar");

クラス名をセレクターで使用したいだけの場合は、jQueryに組み込まれているセレクターライブラリがすべてを処理するため、オブジェクトに他のクラス名がいくつあるかを心配する必要はありません。例えば:

$(".myClassName").css("color", "red");

myClassNameclassNameプロパティのどこかにあるすべてのオブジェクトを検索し、指定されたCSSをそれらのオブジェクトに適用します。

于 2012-04-27T01:17:16.160 に答える
2

jqueryクラスメソッド(addClass、removeClass、hasClass、toggleClass)を使用してクラスを操作できます

于 2012-04-27T01:14:06.850 に答える
1

クラスセレクターを使用して、jQueryに作業を任せます。

$('td.class1').css();
于 2012-04-27T01:10:16.377 に答える
0

Javascript

$(document).ready(function() {
    alert('Class 1 = ' + $('#test').attr("class").split(" ")[0]);
    alert('Class 2 = ' + $('#test').attr("class").split(" ")[1]);
    alert('Class 3 = ' + $('#test').attr("class").split(" ")[2]);
})

HTML

<div id="test" class="class1 class2 class3"></div>

ライブスクリプト: http: //jsfiddle.net/7ZDP4/

于 2012-04-27T01:12:39.123 に答える
0
$('td.class1').css('background','red');
$('td.class2').css('background','blue');

編集、目的を指定して、次を使用することもできます:

if ( $(this).hasClass('class1') ){ /* do this */  } else {  }
于 2012-04-27T01:13:47.803 に答える
-1

私が最も簡単だと思った方法は、クラスを使用する代わりに、attr"href"を個別のエンティティとして使用することです。

<td class="class1 class2" href="WhatYouWantToGrab" ></td>

次に、jQueryではこれを行うだけです

    $('.class1.class2').click(function() {
    var yourVariable = $(this).attr('href');

});

お役に立てれば。

于 2012-04-27T01:15:04.823 に答える