質問

私は2つのdiv要素を持っていた場合、両方のid = "myDiv" と

両方のdivをフェードアウト$("#myDiv").fadeOut();でしょうか?それとものみ第一/第二フェードでしょうか?またはnoneすべてで?

私はそれがフェードアウトどちら変更するにはどうすればよい?

注:私は、重複したIDを知っている基準に反しているが、私はfancyboxモーダルポップアップを使用していますし、それがポップアップのコンテンツをページ上の指定されたコンテンツを複製します。誰もがこれを回避する方法を知っていれば(多分私はfancyboxの間違ったを使用しています)私に教えてくださいます。

役に立ちましたか?

解決

IDを照会するとき、

jQueryのは、1つの要素と一致します。最大で1つのElementオブジェクトの配列は、$("#foo").get()によって返されます。詳細については、 jQueryのドキュメントを参照してください、またはそれを自分を試してみます。

$(function() {
    alert($("#foo").length);
});

他のヒント

要素のIDは一意であると考えられています。同じIDの複数のdivを持つことは正しくないと予測でき、およびIDの目的を挑むでしょう。あなたはこれをしなかった場合:

$('.myDiv').fadeOut();

それはあなたが彼らにmyDivと固有のID(あるいはまったくなし)のクラスを与えると仮定すると、それらの両方をフェードアウトでしょう。

"注:私は、重複したIDを知っているが、基準に反している"

そして、それをしません。あなたは既に二つの問題を考え出しました。これは、基準に違反し、それはjQueryの(そして実際に、通常のDOMの)選択機構と干渉する。おそらく将来的にはより多くの問題があるでしょう。

恐らく、あなたは<全角> の私はそれに慣れて、誰かがあなたを助け願っていた場合には、間違ったfancyboxを、使用して。スクリプト自体は欠陥がある場合や悪いことに、あなたはそれを使用するべきではありません。

$(「#のmyDivは」)だけそのIDで最初のdivを返しますので、あなたはこのトリックを使用して、そのIDを持つすべての要素を見つける必要があります:

$('[id=myDiv]');

だから、あなたのケースのために、これらのdiv要素のすべてにフェードアウトを適用します:

$('[id=myDiv]').fadeOut();

そして、あなたはあなたのページが二回、このIDを持っていない、あなたはこれを行うことにより、余分なものを取り除くことができることを確認したい場合:

$('[id=myDiv]:gt(0)').remove();

また、検索()を使用してのルートを行くことができます。そのIDを持つすべての要素を返します見つけ、あなたが必要な場合は、特定の親に範囲を限定$(document).find('#myDiv').fadeOut();ような何かを試すことができます。

または

$('.parentElement').find('#myDiv').fadeOut();

私は同じ問題に遭遇しました。どうやら、あなたはFancyboxを開きたい、そこからページのコンテンツを作成するとき、それは元のコンテンツのミラーのdivを作成します。私の場合、コントロールは、名前の作成しfancyboxのdivに包まれた、「fancy_div」

私はコントロールを選択し、セレクタの次の形式を使用して、それが値です取得することができた。

$( '#1 fancy_div [ID =のinputText]')のval();

あなたのコントロールがFancybox内の他の場所に存在してもよいです。行うための最善のことは、viewsourceを見ているが、それは難しいのです。

次のテクニックを使用し、ソースの表示を取得するには: フォームにこのタグを配置します。 値を取得します。 あなたのフォームを開き、警告ウィンドウを開くために、タグをクリックしてください。
(コントロールを見つけてクリックします)カーソルがページのコンテンツ内にあることを確認してください。
右のコントロールの外にクリックして、「ソースの表示」を選択します。
div要素の束が存在するので、あなたのコンテンツが含まれているのdivを探します。

この情報がお役に立てば幸いです。

私は最近、同様の問題がありました。私はAjaxの負荷を介して異なるコンテンツを表示する単一のページを持っていました。 PDFの画像を生成するためにサーバをトリガーボタンがあります。

私の元の溶液がうまく働いたクラスセレクタを使用していたが、別の開発者との摩擦を引き起こしました。非常に多くのクラスは、識別子は、コードが醜い作ったとしてクラスを使用して、リンクにすでにありました。だから私は、name属性を使用します:

<a name="printButton"....

$('a[name="printButton"]').on('click',function(){....

ちょうどダンディ働いた!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top