私は現在、これを使用して、ページ上の特定のHTMLのクラスを取得しています。
_$(this).parent("div").attr('class')
_
しかし、そのdiv
には複数のクラスがあります:_current_status status_billed
_
ここでの最終目標は、_status_
_で始まるクラスを取得して、別のクラス名に置き換えることです。
上記の.parent()
関数を使用すると、必要なdivを選択できますが、次に_status_billed
_クラスを削除して、たとえば_status_completed
_に置き換える必要があります(または他のいくつかのクラス名)。
_status_billed
_クラスを持つdiv
sを選択します。
_$(this).parent('div.status_billed')
_
div
属性に_status_
_が含まれるclass
sを選択します。
_$(this).parent('div[class*=status_]')
_
jQueryセレクター で得られる最高のものです。 .filter()
を使用すると、より良い結果が得られます。
_$(this).parent('div').filter(function ()
{
var classes = $(this).attr('class').split(' ');
for (var i=0; i<classes.length; i++)
{
if (classes[i].slice(0,7) === 'status_')
{
return true;
}
}
return false;
});
_
...しかし、なぜこれをすべて行うのかはわかりません- .parent()
は最大で1つの要素を返します。もしかして .closest()
または .parents()
?