2009-07-05 12 views
3

したがって、JQueryで動的にコントロールを生成しています。入力コントロールはEnterLink +生成されたコントロールの数と呼ばれます。新しい入力コントロールの生成時に、以前に作成された入力を無効にするためにそれを変更したいと思います。今のところ私のコードはそうであるように見えますが、動作しません。JQuery動的IDコントロールのプロパティ

if (rowCount > 0) { 
        var last = rowCount - 1; 
        $("#EnterLink" + last).disabled = true; 
        } 

これはうまくいくように見えますが、コントロールのIDを確認したところ、フォーマットされているようです。

答えて

10

この置き換えます。これにより

$("#EnterLink" + last).disabled = true; 

を:

$("#EnterLink" + last).attr('disabled', true); 

jQueryのは、通常のDOMはその$()機能によって属性を直接公開しません。あなたが持っているものは、要素を拡張し、すべてのjQueryの良さをそれに追加するラップされたセットです(与えられた要素は1つだけですが、それにもかかわらずセットです)。

あなたが#EnterLinkXのネイティブDOM要素を取得したい場合は、あなたがこれを行うだろう:$()の戻り値がマッチした要素を含む配列のような構造であるため、

$("#EnterLink" + last)[0].disabled = true; 

をこれが動作します。 [0]には最初の(この場合は唯一の)一致が含まれます。これにより、innerHTMLなどのようなものにアクセスできます。しかし、99%の時間で、それを "jQueryのやり方"にする方が良いです。それは、それが図書館全体のポイントです。この場合、属性を設定するにはattr関数を使用し、これまでにも無効な値を削除するにはremoveAttr関数を使用します。

+0

Gracias! 15文字制限 –

+0

完璧なSOの答え - 完全な、簡潔な、そして正しい! :) –

2

ボタンを無効にしようとすると、次のようになります。

$( "#EnterLink" + last).attr( "disabled"、true); または $( "#EnterLink" + last).attr( "disabled"、 "disabled");

+0

http://docs.jquery.com/Alternative_Resources jquery開発に必要なものはすべてあります。 –

関連する問題