2017-10-16 13 views
0

次のクリック機能があります。jQueryで属性を取得できません

$(".charPortait").on("click", function(event){ 
    console.log(this.value); 
}); 

ログに「未定義」と表示されます。それは値を取得することはできません理由を見つけるために、私はこの次のを試してみました:

$(".charPortait").on("click", function(event){ 
    console.log(this); 
}); 

このログ:

<div id="TomiasPortrait" class="col charPortait" value="Tomias"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed 
    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
</div> 

を私は属性「値」を取得していないです、なぜ私は理解していません適切にログします。

+0

'value'はdiv要素の非標準属性なので、' .value'プロパティにマップされないことがあります。代わりに 'data-value'属性を使用してみましたが、' this.getAttribute( 'data-value') 'で値を取得しましたか?なぜクリックハンドラをdivにバインドしていますか?ユーザーがマウスや他のポインティングデバイスを持っていない場合、あなたのページを使用することはできません。 – nnnnnn

答えて

0

$(".charPortait").on("click", function(event){ 
 
    console.log($(this).attr("value")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div id="TomiasPortrait" class="col charPortait" value="Tomias"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed 
 
    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
 
</div>

0
  1. 本部は値を持っていません。
  2. 使用data-*
  3. あなたが値を取得するためのデータ属性を使用することができます.attr(data-*)

$(".charPortait").on("click", function(event){ 
 
    console.log($(this).attr('data-value')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="TomiasPortrait" class="col charPortait" data-value="Tomias"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed 
 
    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
 
</div>

0

を使用して値を取得します。下記の例をご確認ください。

<div id="TomiasPortrait" class="col charPortait" data-value="Tomias"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed 
    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
</div> 

$(document).ready(function() { 
    $(".charPortait").on("click", function(){ 
    console.log(this.getAttribute('data-value')); 
}); 
}); 
0

ログに「未定義」と表示されます。これは、変数に値が割り当てられていないことを示しているためです。

したがって、その属性の値を取得するにはattr()を使用する必要があります。 HTMLにはvalueという属性がないので、data-を使用してデータ名を連結することができます。下記参照。ここで

$(".charPortait").on("click", function(){ 
 
    console.log($(this).attr('data-value')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="TomiasPortrait" class="col charPortait" data-value="Tomias"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed 
 
    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
 
</div>

0

あなたが解決

$(".charPortait").on("click", function(event){ 
 
    console.log($(this).attr('value')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="TomiasPortrait" class="col charPortait" value="Tomias"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed 
 
    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
 
</div>

これはあなたを助けることを願って行きます。

関連する問題