2

関数の親オブジェクトを取得する方法はありますか?どのオブジェクトが機能をアクティブにしたのですか?これがJSです

var ua=false
function toggleUA() {

if (ua==false)

{document.getElementById("ua").src="http://i805.photobucket.com/albums/yy331/NatFan/uamap.png";ua=true;}
else
{document.getElementById("ua").src="http://upload.wikimedia.org/wikipedia/commons/8/8c/Transparent.png";ua=false;} }

これがHTMLです

<img class="airline" id="ua" src="http://upload.wikimedia.org/wikipedia/commons/8/8c/Transparent.png" width="1500" height="744">
<table class="nav">

<tr>

<td class="star" onclick='toggleUA();'>United Airlines</td>

</tr>

</table>

それで、クリックしたときにテーブルセルの色を変更したい場合、どうすればよいですか?

4

1 に答える 1

1

thisより安全な方法は、最初の引数として関数呼び出しに渡し、それを使用して操作することだと思います。そのような:

<td class="star" onclick='toggleUA(this);'>United Airlines</td>

そして、Javascript関数は次のように宣言されます。

function toggleUA(obj) {

objクリックされたのはどこですか(これを複数の要素<td>で使用する場合)。<td>

現在、通常、イベントリスナーがthis機能する方法は、引数として渡すことなく関数を自動的に参照できることですが、インラインイベントハンドラーが機能する方法は同じではないため、を渡す必要がありますthis

アップデート:

.style背景色やその他のスタイルプロパティを変更するには、要素のプロパティを使用できます。これにより、CSSプロパティを変更できるようになります。背景色については、次を使用してください。

this.style.backgroundColor = "#fff";

https://developer.mozilla.org/en-US/docs/DOM/element.style

于 2012-10-27T00:00:02.043 に答える