2016-09-30 20 views
0

$(this)をJS関数でどのように使用して、attrが見つかりましたか?

function date_box() { 
    alert(this.getAttribute(week)); 
    } 

私はgospel_table4のクリックでgospel_table 4と呼ばれる要素から属性weekを取得したい、関数がトリガーされます。

$(this).click... 

<a href='#'><div id='gospel_table4' week='$one_date' onclick='date_box()'> Week $one_date </div></a> 

私はこれを行うことはできません

gospel_table4の1つの要素しかクリックできないためです。他の方法では、gospel_table4のすべての要素をクリックできます。

基本的に、date_box()の関数からattrを取得するにはどうすればよいですか?

+4

'onclick = 'date_box(this)'' '関数date_box(this){ アラート($(this).attr( 'week')); } ' – guradio

+0

@guradio動作しません... – user6902601

+0

@guradio - あなたは' this'という名前の関数引数を持つことはできません。 – nnnnnn

答えて

4

はあなたの関数内のparamが必要

HTML:

<a href='#'><div id='gospel_table4' week='$one_date' onclick='date_box(this)'> Week $one_date </div></a> 

Javascriptを:

function date_box(thisdiv){ 
    alert($(thisdiv).attr("week")); 
} 
0

JAVASCRIPT

function date_box(that) 
 
{ 
 
    $attr=that.getAttribute('week'); 
 
    alert($attr); 
 
}
<a href='#'><div id='gospel_table4' week='$one_date' onclick='date_box(this)'> Week $one_date </div></a>

0

ので、クリックが機能していない理由は、div要素がアンカータグ、 内にあり、アンカーがより多くの詳細を与えることができAnchor tag becomes non-working link in a div with float: right;またはIs putting a div inside an anchor ever correct?などの参照がクリックされたということです。我々はアンカーが最初にクリックされたことを知っているので、我々はアンカータグにclickイベントリスナーを配置しますので、以下ではjQueryの()のコード

$("#gospel_table4").parent("a").click(function(){ 
    var week = $(this).children("#gospel_table4").attr("week"); 
    console.log(week); 
}); 

は説明です。次に、相対的な子要素にアクセスできます。

これは動作しますが、date_box()も同時に呼び出されますので、上記のようにonclickを削除して、コードを詳細に制御することをお勧めします。これが参考になることを願っています。

関連する問題