2011-01-20 2 views
0

私はJQueryの新機能ですが、これはこれまでに書いた最初のスクリプトです。以下は単にクラス "TestDIV"を持つすべてのDIVを見つけて、それらの中にある入力に対していくつかの操作を実行します。JQueryのborderColorを変更する際の問題

すべては、もともと私が設定した色のままであるborderColorとは別に動作します。誰がこれがなぜであるかについてのアイディアを持っていますか?また、コードを改善する方法についてのヒントも大歓迎です。

function hideAndShowJQ(show) { 
     var hideColor = "#DFDFDF"; 
     //Find DIVs and modify styling 
     var div = $('div.TestDIV'); //Find relevant divs 
     div.css('color', (show) ? "" : hideColor) //Change text colour 
      .find(':input').attr("disabled", !show) //Disable any inputs 
      .attr("borderColor", "red") //Change border colour of inputs 
      .attr("value", ""); //Clear any existing input text 
} 

答えて

5

問題は、borderColorは要素の属性ではなく、CSSプロパティです。

CSSプロパティ/値を変更するには、css()を使用してください。引用符を使用する場合も、それは"border-color"ないborderColorは(@Felixクリングノートとしても、以下のコメントでは、それはキャメルケース引用符であることについては関係ありません)です:あなたはjQueryのを使用していることを考えると

div.css('color', (show) ? "" : hideColor) //Change text colour 
      .find(':input').attr("disabled", !show) //Disable any inputs 
      .css("border-color", "red") //Change border colour of inputs 
      .attr("value", ""); //Clear any existing input text 

、そして消去したいinput要素を持っている、val()ではなく、attr()を使用する方が簡単かもしれません:あなたはBORDERCOLOR変数間違っを適用している

.val(''); // sets the value of the input to an empty string. 
+2

など

$(this).css("border-top-color"); $(this).css("border-right-color"); 

...。両方とも動作します。 'css'にオブジェクトを渡した場合のみ、文字列以外のキーを使用する場合は' borderColor'にする必要があります。 –

+0

@Felix Kling:本当に?私はいつも変数と同様に動作すると仮定していました(文字列に '補間'されないという点で)。私はなぜそれを考えたのか分かりません。ありがとう! –

0

$(this).css("borderColor","red"); 
+3

これはテキストの色を設定します;) –

+0

ああ、oops。もちろん私は "borderColor"を意味していました。 – Damien

+0

私は答えを更新しました。 – Damien

1

これは、次のとおりです。$(this).css("borderColor","red")。 「私はあなたがChromeとSafariで略記怒鳴るを使用することができます

$('#div-name :input').attr("style", ""); 
2

これはあまりにも動作する可能性がありそれをサポートしません。

$(this).css("borderColor"); 

ブラウザ固有の表記法を使用する必要があります。代わりに、このいずれかを使用することができます:それは `borderColor`または`ボーダー・color`であるかどうかは関係ありません

0

テキストボックスの境界線のスタイルに同じフォームを使用しているため

$('#div-name :input').attr("disabled", !show); 

が、Mozillaのドン:

関連する問題