JSを使用しないHTMLページをJSドライブページに変換するためにjQueryを使用してDOMを書き換えています。私は画像のリンクを変える際に不具合を起こしました。jQuery:子要素のOnclick関数の引数に "src"属性を書き込む方法
<div class="f">
<a href="images/Fig-03-2.png" target="_blank">
<img src="images/fig-03-2.png" alt="Fig 3.3" />
</a>
</div>
...と私はにそれを変換したい:元のコードでは私が持っている、それはimg src
を含むように私はonclick
属性を作成する方法を見つけ出すことはできません
<div class="f">
<a>
<img src="images/fig-03-2.png" alt="Fig 3.3" onclick="imagepop("fig-03-2.png")/>
</a>
</div>
値はimagepop
の引数です。私が試した:
$(".f a").attr('onclick', 'imagepop(' + $(this).attr('src') + ')');
...しかし$(this).attr('src')
は "未定義" 返されました。
コードの行を修正するにはどうすればいいですか、またはimagepop
関数内のimg src
属性を読み取る方がよいでしょうか?
**私は各divが一意のIDを持つようにページを開発していないので、そうする予定はありません。 <div>
タグ内の要素には、IDが割り当てられていません。
JSコード文字列に引用符/エスケープするのを忘れてしまったので、 'imagepop(http://www.example.com/images/fig-03-2.png)'として出てきます。作業。しかし、どのような場合でも、文字列からのイベントハンドラ属性の設定は、ブラウザ間ではあまり信頼できないものであり、最初は悪い考えです。 FunctionオブジェクトにDOMの 'element.onclick'を設定するイベントハンドラを割り当てることができます。あるいは、TJの答えのようにjQueryの方法で行うこともできますが、JSコードを文字列に入れないでください。 – bobince
また、 'href'sをそのまま残しておき、通常のリンク、すなわち、フォーカスを合わせることができる通常のリンク、新しいキーボードの中クリックをキーボードでナビゲートするようにしてください。 – bobince