1

現在のセレクターですべての項目を選択するにはどうすればよいですか? 少し怠惰に聞こえるかもしれませんが、クラス名を使用せずに、これが可能かどうかを知りたいです。

$(document).on('click', '.selector', function() {
    // Select all nodes based on this selector

    $($(this).context) // Tried this but didn't work. I want to use $(this) to get the original selector (.selector), but not use $(this).className
});

したがって、書く代わりに:

$('.selector').removeClass('selected');
$(this).addClass('selected');

私が欲しい:

$($(this).getSelector()).removeClass('selected');     // Remove class from all nodes with this selector
$(this).addClass('selected');           // Only add class to the item currently clicked

これは、セレクターを繰り返さないためです。

4

4 に答える 4

3

今、私はあなたの質問を理解しています。次のコードを使用する必要があります。

デモを見る

$(document).on('click', '.selector', function (e) {
    $('*').css('color','black');
    var $elems = $(e.handleObj.selector);//this is what you want!
    $elems.css('color','red');
});
$(document).on('click', 'div', function (e) {
    $('*').css('color','black');
    var $elems = $(e.handleObj.selector);
    $elems.css('color','red');
});
于 2013-04-30T12:51:34.613 に答える
3

クリックは単一の要素に対して行われるため、すべてが常に 1 つになります。クリック ハンドラーをアタッチするために使用したセレクターに一致するすべてのアイテムを取得する場合は、yoursef を繰り返す必要があります。

$(document).on('click', '.selector', function() {
    var elems = $('.selector');
});
于 2013-04-30T12:38:39.540 に答える
1
var selector = '.selector',
    $elems = $(selector);

$(document).on('click', selector, function() {
    // Get individual
    var $this = $(this);

    // Still can cccess all  $elems
});
于 2013-04-30T12:39:19.850 に答える