2010-12-11 5 views
0
$('#form').find('input').focus(function(){ 
    var a = $(this).attr(id); 
    $(a+'Help').addClass('elementHelp'); 
}); 

特定のフォーム内のすべての入力要素を対象とする短いコードを作成しようとしています。入力要素にフォーカスがあるときはいつでも、idを取得し、idが入力要素のidとそれに続く "Help"の連結である別の要素(存在する場合)のフォント色を変更します。手動で呼び出しないでjQueryを使用してフォーム内のターゲット入力要素

私はこのための機能を作ることができましたが、私はHTMLの人にそれを呼びたくはありません。私は彼がスクリプトを含み、それが動作することを望むだけです。私は彼に命名規則を説明した。

上記のコードはすべて機能しません。誰でも私がこれを解決するのを助けてくれますか?

ありがとうございました。

私がそうするように命じられているにもかかわらず、私がこのようにするのがひどく間違っているかどうか教えてください。

答えて

4

id(変数)は、このように、.attr()で使用する文字列をする必要があります...ここundefinedです:

$(this).attr("id"); 
...しかし、はるかに簡単な方法は、既に存在を使用していますDOMのプロパティ .idのように:

$('#form').find('input').focus(function(){ 
    $('#'+this.id+'Help').addClass('elementHelp'); 
}); 
+0

私はあなたが何をしたのか理解していますが、なぜ動作しないのかわかりません。おそらく、私がやっていることは本当に馬鹿なことでしょう。あなたはこれを見て何が間違っているのか教えてください:http://jsfiddle.net/PVP2j/3/ – Aayush

+0

@Aayush - doh、私のせいで、IDセレクタの接頭辞 '# 'が必要です。http:// jsfiddle.net/nick_craver/PVP2j/4/ –

+0

ありがとうございました。それは完璧に動作します。 – Aayush

関連する問題