2011-01-27 22 views
0

osCommerceインスタンスでフォームデータを操作するためにjQueryを使用していますが、いくつかの要素を選択する際に問題があります。jqueryセレクタが[]で動作しません

スクリプトは、ID PRODUCT_DESCRIPTION [N]、Nは1、2、3 ...

問題[]とID値を持つことに、それはjQueryのを作ることである(たとえ正規スクリプトを使用してテキストエリアを生成します)要素を選択しないで、私はそれを使用することはできません。

$('#product_description[1]').attr('id','products_description_1'); 

はこのような何かを選択するために、jQueryのを作るための方法があります:

は私が情報を操作し、[]に戻ってそれを変更するが、私はさえもできない、アンダースコアにIDを切り替えてみました$( '#some [2]')。function ...?

ない場合、私はIDの値を変更することができます別の方法がある場合、私はのように普通に動作し、その後バック[]

はい、私は知っているフィールドを認識するためのphpのためにそれを変更することができますので、それは大丈夫です、私はクラスのような別の方法でテキストエリアを選択することができますが、teページには多くのテクスチャがあるので、私は一意の名前が必要です、それは私が欲しくないosCommerceスクリプトを編集する必要があります。私は自分のJSをoscommerceコミュニティに寄付しようと考えています。他の人には.jsを簡単に追加するだけですが、javascriptが動作するようにPHPファイルを編集する必要がある場合は、初心者にとっては怖かったり、既に編集しているこれが動作している間、彼らはで使用するための罰金だが、ブラケットの文字が(前HTML5へのIDで使用するために有効でないことを

$('#product_description\\[1\\]') 

注:

どうもありがとう

答えて

1

はこれを試してみてくださいクラス)。

+0

+1それ以外の場合は、属性のプレゼンスセレクタです。http://www.w3.org/TR/2009/PR-css3-selectors-20091215/#attribute-representation –

+0

はい、有効かどうかはわかりませんが、あなたが簡単に_を使うことができるときに、タグ値に[]を使用するという愚かな考えがあります。私はこれをosCommerce開発者に報告しました。 – Juan

2

[]文字は、HTML4では有効なID文字ではありません。あなたがそれらを使用する場合、異なるブラウザで一貫した結果を期待しないでください。


EDIT:

あなただけのサーバー側でのIDのフォーマットを制御することができない場合は、あなたがこれを行うことができます:

$("*[id='product_description[1]']") 

をそれがひどく遅くなりますquerySelectorAllをサポートしていないブラウザでは

(あなたが理由値の前後に引用符のここ\\を必要としないように注意してください。)

2
$("#product_description\\[1\\]").attr("id", "products_description_1"); 

jQuery.com

の「 ID-Selector」を見て、右のコードです
+1

+1私は私の答えで行ったように、余分なエスケープを忘れないために+1。 –

+0

なぜ私は括弧で逃げることができなかったのか分かりません。私は選択されたドキュメントの一部を読んでいましたが、それを見つけられませんでした。どうもありがとう – Juan

関連する問題