1. ホーム
  2. javascript

[解決済み] jQueryのセレクタからDOM Elementを取得する方法は?

2022-04-15 01:44:52

質問

を取得する方法を見つけるのにどうしようもなく苦労しています。 DOMElement をjQueryのセレクタから取得することができます。

サンプルコードです。

<input type="checkbox" id="bob" />
var checkbox = $("#bob").click(function() { //some code  } )

そして、別のコードでは、チェックボックスのチェックされた値を決定しようとしています。

  if ( checkbox.eq(0).SomeMethodToGetARealDomElement().checked )
    //do something.

そして、私はやりたくないので、お願いします。

  if ( checkbox.eq(0).is(":checked"))
    //do something

これでチェックボックスを回避することができましたが、それ以外の場合は、本物の DOMElement .

解決方法は?

で生のDOM要素にアクセスできる。

$("table").get(0);

とか、もっと簡単に言うと

$("table")[0];

しかし、実際には、これが必要なことはあまりありません(私の経験では)。チェックボックスの例を見てみましょう。

$(":checkbox").click(function() {
  if ($(this).is(":checked")) {
    // do stuff
  }
});

はより "jquery 的であり、(imho) より簡潔なものです。番号付けをしたい場合はどうすればいいのでしょうか?

$(":checkbox").each(function(i, elem) {
  $(elem).data("index", i);
});
$(":checkbox").click(function() {
  if ($(this).is(":checked") && $(this).data("index") == 0) {
    // do stuff
  }
});

また、これらの機能の中には、ブラウザの違いを隠すためのものもあります。一部の属性は異なる場合があります。典型的な例は、AJAXの呼び出しです。生のJavascriptでこれを適切に行うには、約7つのフォールバックケースで XmlHttpRequest .