0

クラス「linkroll」を持つdiv内のすべてのリンクに適用されるcssクラスがあります。

var selector = '.linkroll a';

このクラスが div 内のハイパーリンクされた画像に追加されないようにしようとしています。どうすればいいですか?

同様に、これにクラスを適用させたくありません:

<div class="linkroll"><a href="#somelink"><img src="someimg.jpg"></a></div>

var selector = '.linkroll a';
// if selector is not image, then do something...
4

3 に答える 3

1

CSS は DOM ツリーをたどることしかできないため、子要素に基づいてクラスを追加することはできず、親のみに基づいてクラスを追加することはできません。ただし、jQueryを使用してこれを行うことができますfilter()

$('.linkroll a').filter(function() {
    return $(this).children('img').length == 0;
}).addClass('foo');

フィドルの例

于 2013-10-22T12:49:44.940 に答える
0

クラス「linkroll」を持つdiv内のすべてのリンクにCSSクラスが適用されています

つまり、すでに適用されているので、そのクラスを削除したいと思います。

ライブデモ

$('.linkroll a > img').closest('div').removeClass('linkroll');
于 2013-10-22T13:42:04.867 に答える
0

$('.linkroll a').filter(function() {

return $(this).attr('href');

}).parent().removeClass('リンクロール');

フィドルの例

于 2013-10-22T13:29:33.437 に答える