2011-09-13 2 views
0

私が達成しようとしているものをいくぶん集計してください。変数内のオブジェクトが別の変数(jQuery)にも含まれているかどうか確認してください。

var one = $('div.foo, div.faa, div.fee, span, a, .all-sorts-of-objects'), 
    two = $('div.fii, div.foo, span, .all-sorts-of-objects-two'); 

そして今、私はオブジェクトも内に含まれている内に含まれるかどうかを確認したい:

のは、私は2つの変数があるとしましょう。つまり、両方の変数にオブジェクトがある場合です。

オーバーライドしないホバー機能を設定できるようにする必要があります(インラインカラースタイルを追加するため、オブジェクトを賢明にターゲット設定する必要があります)。これは私が思いついたロジックです:(の場合は(1 == 2)は本質的に私の質問です)。

one.hover(function() { 
    if(one == two) { // if there is one or more objects in both variables.. 
     $(this).css('color', 'red'); 
    } else { 
     $(this).css('color', 'blue'); 
    } 
}, function() { 
    // ... 
}); 

私は十分にはっきりしていることを希望します。そうでない場合は、私に知らせてください。私はこれをより良く説明するために最善を尽くします。

ありがとうございました!ここで

答えて

2

はそれを行うための迅速かつ汚い方法です:

私の本で
var one = $('div.foo, div.faa, div.fee, span, a, .all-sorts-of-objects').addClass('one'); 
var two = $('div.fii, div.foo, span, .all-sorts-of-objects-two').addClass('two'); 

one.hover(function() { 
    if(one.hasClass('two')) { 
     $(this.css('color', 'red'); 
    } 
}); 
+0

ねえ、ありがとう!結局、私は違うが似たような道を歩んだ。あなたのアイデアは私を始めました。ありがとう! – cr0z3r

0

(離れて、可能な場合、これらの重複セレクタを避けるために、リファクタリングから)クリーンな方法はmergeunique jQueryのユーティリティを使用することです次のようなものがあります。

var $merged = $.merge(one, two); 
var $unique = $.unique($merged.get()); 

$ uniqueには、固有の要素、または必要に応じて別個の要素が追加されました。

+0

私は、(何らかの理由で)$一意のオブジェクトがそれらを分割/分割することなくすべての要素を保持していれば、このようにしてしまいました。どうにかして、私の要素のうち、 "div#era-blocks-container"のようなものだけがエコーされた部分だけがエコーされます。いずれにせよ、これをありがとう! – cr0z3r