2

重複の可能性:
document.getElementByIdとjQuery

特定のクラス( "jobStatus")のすべてのスパンを取得し、そのクラス( "orange")から追加のクラスを削除する関数があります。SELECT onchange(onchange = "chgJobstatus(this);")から関数を呼び出します。それはうまく機能しています。

ただし、選択した値に基づいて、ページの読み込み時に実行しようとしています(これはサーバー側で動的に生成されます)。

これは機能します:

     $(document).ready(function(){
          chgJobstatus(document.getElementById("chgStatus"));
     });

これは機能しません:

     $(document).ready(function(){
          chgJobstatus(jQuery('#chgStatus'));
     });

jQuery('#id')はdocument.getElementById('#id')と同じことをしませんか??

4

5 に答える 5

9

要素の選択に関しては、はい。ただし、jQueryセレクターはjQueryオブジェクトをgetElementById返し、DOM要素オブジェクトを返します。[index]またはget(index)メソッドを使用してDOM要素を取得できます。

chgJobstatus(jQuery('#chgStatus')[0]);
于 2012-10-14T12:33:19.977 に答える
0

いいえ、jQuery('#id')追加の関数とプロパティがアタッチされたjqueryオブジェクトを返します。

あなたが何をしようとしているのか完全にはわかりませんが、このようなもので、あなたが説明したすべてのJavaScriptを置き換えることができます。

$("#chgStatus")
  .bind("change", function() {
    $(".jobStatus").removeClass("orange");
  }).trigger("change");
于 2012-10-14T12:32:35.143 に答える
0

これは確かに機能します。jQuery(selector)常にjQueryオブジェクトを返します(jQuery(selector) instanceof jQuery is true )。ただし、.getを使用するか、以下のように配列のような構文を使用して、ネイティブdom要素を取得できます。

$(document).ready(function(){
          chgJobstatus(jQuery('#chgStatus')[0]);
     });
于 2012-10-14T12:33:26.823 に答える
0

jQuery('#id')-jQueryオブジェクトを返します

document.getElementById('#id')-HTMLDOMオブジェクトを返します

jQuery('#id')。get(0); またはjQuery('#id')[0]; -HTMLDOMオブジェクトを返します

jqueryを使用すると、jquery関数にアクセスできるようになります。以下のリンクを読むと、良いアイデアが得られます。

document.getElementByIdとjQuery

jQuery $()とdocument.getElementByID —違い

getelementbyid-vs-jquery-id

jquery-sharp-vs-getelementbyid

getelementbyid-vs-jquery-id

于 2012-10-14T12:57:48.463 に答える
0

さらに重要なことは、jQueryがオブジェクト自体ではなくjQueryオブジェクトへの参照を返すことです。

于 2012-10-14T13:20:11.660 に答える