2011-08-25 13 views
5

私は復元しようとしている誰かの古いコードを持っています。私はあまりjQueryに精通していませんが、@オペレータは何を指定しますか?jQuery @ operator?

コードは次のとおりです。

v_button_format = $('#' + v_form_id).find('input[@name=button_format]').val(); 
v_content_type = $('#' + v_form_id).find('input[@name=content_type]').val(); 

私はjQueryの1.3を使用していますが、それは "キャッチされない例外:構文エラー、認識できない表現:[名@ = button_format]" 投げエラー。互換性の問題はありますか?

答えて

13

これは属性セレクタです。

@は、jQueryで使用されなくなったXPath-ismです。
さらに、新しいバージョンのjQueryでは、属性値を引用符で囲む必要があります。

したがって、あなたはattributeを意味

$('#' + v_form_id).find('input[name="content_type"]').val(); 
+0

を使用して現在のjQueryとの後方互換性@演算子である属性? – powtac

+1

@powtac:私は信じていません。 – SLaks

+0

トピックはほとんどありませんが、そのようなことは 'document.getElementsByName'を使用する方が良いのですか? –

3

を記述する必要があります。 input[@name=button_format]the input tag with the name attribute equal to button_formatを意味します。

ただし、最近のバージョンのjQueryでは、@とquote button_formatを削除する必要があります。つまり、@は下位互換性がありません。 So quoth the docs

注:jQueryの1.3 [@attr]スタイルセレクタを除去した(これらは、以前のjQuery 1.2で非推奨されました)。セレクタから「@」記号を削除するだけで、それらを再び機能させることができます。

+0

'@'に関する注意点をありがとう! – powtac

0
input[@name=button_format] 

はすなわち、 'button_format' に設定名前属性を持つ入力フィールドを意味します

<input name="button_format"> 
0
input[@name=button_format] 

これは、@どうかあれば削除type.please 古いセレクタです最新のjQueryを使用して 新しい方法は

input[name="button_format"] 
0

注:jQuery 1.3 [@attr]スタイルセレクタは削除されました(以前はjQuery 1.2では非推奨の でした)。もう一度動作させるには、セレクタから '@'記号 を単に削除してください。

これは廃止予定のセレクタなので、コードから削除する必要があります。これはサポートされなくなり、エラーが発生します。

0

これは古い方法です。

それは(とに変更する必要がある)と同じである:他の人が述べたように

$('input[name="button_format"]') 

はまた

0

属性必須引用符に注意してください。

マイ2セント:表記法も示したXPath(XML)からインスピレーションを得ているが@