2010-12-08 17 views
2

私は有効なjQueryオブジェクトでなければならないオブジェクトを持っています。 FireBugの変数を見ると、期待していたすべてのjQuery関数(クローン、削除、削除など)が含まれています。しかし、私は有効な関数としてhtml()表示されていないと、私はこれを行うとき:jQueryオブジェクトhtml()は機能しません...しかしinnerHtmlは

stringValue = myjQueryObject.html(); 

これは、HTMLを言って、失敗しない()関数ではありません。私はこのような何かただし:

stringValue = myjQueryObject[0].innerHTML; 

をそれは正しくオブジェクト、マイナス(私はそれだけでinnerHtmlを取得しているかのように見て、期待される)親のdivとテキストをバックに渡します。私はここで何が欠けていますか?

以下に述べるように、以前は有効なjQueryオブジェクトを返していたmyjQueryObjectを生成していた外部ライブラリでした...間違って更新されました。後世のために、私は、これはnullまたはundefined返さないことを確認し、外部ライブラリが正しいjQueryオブジェクトを返すことを確認するために私のユニットテストを更新しました:

myjQueryObject.jquery 

感謝をすべて!今朝私のコードが突然壊れたときに少しフリークアウトがあった。

+0

jQueryの '.html()'も '.innerHTML'プロパティを使用しているので、ほとんど聞こえません。あなたは 'myjQueryObject'とあなたのマークアップの定義を提供するべきです。 http://www.jsfiddle.net/4yUqL/14/ – jAndy

+0

"myjQueryObject"はjQueryオブジェクトではないと思われます。jQueryオブジェクトにはhtml()がありますが、innerHtml()メソッドはありません。どのようにそれを作成していますか? – Andrey

+0

@Andrey - OPは 'innerHTML'(ほぼ)を正しく使うための質問を更新しました。 @user - あなたは 'innerHTML'ではなく' innerHtml'を持っています。実際のコードを投稿してください。 – user113716

答えて

2

jQueryオブジェクトのプロトタイプが変更されているか、別のライブラリがロードされています。

は、あなたのオブジェクトを取り、そしてこのようなjQueryのバージョンのためのテスト:

alert(myjQueryObject.jquery); // should give the jQuery version number 

EDIT:

はまた、あなたはremoveAt方法があることを述べます。 removeAttr()を意味しない限り、jQueryにはそのうちの1つがありません。

+0

ベストアンサーが複数ある場合は、ベストアンサーを選ぶのは難しいです。今私のユニットテストでこれを使用しているので、私はそれを最良の答えとしてマークしました。私はそれがjQueryオブジェクトではないことを他の人に教えてくれました。 – user500038

+0

私は誰でも:)私は出てこないと言いましたが、間違ってオブジェクトを設定し、jQオブジェクトではなくJSオブジェクトを生成している可能性があると思います。あなたはそれをうまく働いてうれしい。 – Dutchie432

+0

@Dutchie - 私は努力のために+1をあげる。 :o) – user113716

2

jqueryオブジェクトですか。もう一度$()にラップし、.html()が存在するはずです。

[0].innerHTMLまたは.get(0).innerHTMLで、innerHTMLはプロパティではありません。

alert(jQuery == $)を実行してjqueryが存在することを確認し、.jqueryプロパティを確認できます。

+0

OPはこれが動作する部分だと言っていますが、 '.html()'はそうではありません。 – user113716

+0

はい、技術的に '.innerHTML()'は機能しませんでした。正確な情報が必要です。 –

+1

私はinnerHTML innerHTMLを意味しませんでした()それは私の一部のタイプミスでした。 – user500038

1

これは奇妙です。試してください$(myjQueryObject).html();。それがうまくいけば、オブジェクトは実際にjQueryノードではありません。

なぜオブジェクトがhtml()メソッドを失ったのかわからない場合は、それを作成するコードを投稿してください。それから、私たちを助けることができるかもしれません。

1

どのようにmyjQueryObjectを設定していますか?

<div id='myElement'></div> 

//Good Javascript, Incorrect jQuery 
myjQueryObject = document.getElementById('myElement'); 
myjQueryObject.innerHTML = '<b>My HTML Here</b>'; 

//Correct jQuery 
myjQueryObject = $('#myElement'); 
myjQueryObject.html('<b>My HTML Here</b>'); 

//Compact Version of Correct jQuery 
$('#myElement').html('<b>My HTML Here</b>'); 
関連する問題