2011-01-19 9 views
0

私はjavascriptを初めて使いました。画像のsetAttributesに関するqouestionを持っています。 イメージの幅を現在の幅に応じて変更したい。これは私が考えるようなものでなければなりません:JavaScriptで画像の幅を変更する

var curWidth=this.im.width; 
if(curWidth>300) 
    curWidth=300; 
this.im.setAttributes 
({ 
    src : this.inputs['src'].value, 
    className: this.inputs['class'].value, 
    width:curWidth 
}); 

このように動作しません。これを行う適切な方法は何ですか?

+0

'this'はに何を指すのでしょうか?いくつかのライブラリによって提供されている "setAttributes()"への呼び出しか、それとも希望的な考えですか?これらの「入力」値は何ですか? – Pointy

+0

これは何らかの種類のライブラリでなければなりません – amosrivera

答えて

3

私はthis.imimg要素であると仮定しています。

、JavaScriptからと対話する必要がある、あなたは属性として指定することの多くが、が経由で利用可能な属性の値を反映して、オブジェクトのプロパティ   —性質を反映しています。だから、:最後の1のようになりますように(幅を含む)スタイルのものを設定し

var curWidth=this.im.width; 
if(curWidth>300) { // <== Added braces for clarity; purely style 
    curWidth=300; 
} 
this.im.src = this.inputs['src'].value;   // `src` is reflected 
this.im.className = this.inputs['class'].value; // `className` is the reflected "class" attribute 
this.im.width = curWidth;      // `width` is a property of its own 

、私は、styleオブジェクトを使用したい:サイズを与えるスタイルプロパティは、単位を有していなければならないこと

this.im.style.width = curWidth + "px"; 

注意を、 CSSと同じように(この場合、ピクセルを使用しています)。

それらを個別に設定する setAttributeを使用し、反射しプロパティを持っていない任意の属性については

:あなたは、反射プロパティとして使用可能な属性を見つけることができます

this.im.setAttribute("foo", "bar"); // Set the `foo` attribute to `bar` 

、および他のどのような性質を介したが、そこにありますW3C DOM specifications(あなたはHTMLImageElement interfaceを探しています)。

+0

答えを入力しているうちに私はあなたのものをロードしました。問題を説明する良い方法はありません;)+1 – stecb

0

これは十分なはずです:

var imgWidth = image.width; 
image.width = imgWidth > 300 ? 300 : imgWidth; 
関連する問題