2016-08-09 33 views
0

HTMLタグから値を取得しようとしています。テキスト自体ではなく、属性値です。私は間違って何をしていますか?HTMLタグから属性値を取得する方法

$('label').click(function() { 
 
    $('p').text(($(this).val())); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label value="hello">click</label> 
 
<p></p>

+1

ですmultipage/forms.html#the-label-element)。有効な属性は、一般的な[グローバル属性](https://html.spec.whatwg.org/multipage/dom.html#global-attributes)と[カスタムデータ属性](https://html.spec .whatwg.org/multipage/dom.html#custom-data-attribute)( 'data- *') –

+0

'data- *'を使うと、任意の文字列を使うことができます。例。 'data-value =" hello "' – zer00ne

+0

@ zer00ne 'data- *'はどういう意味ですか?価値はどこにあるのか?私はJQueryでどのように価値を取り戻すことができますか? –

答えて

2

使用data-*それはあなたが任意の文字列を使用することができます。例。 data-value="hello"。これは任意の要素AFAIKで有効で普遍的です。 [値]は[ `label`]のために有効な属性ではありません(https://html.spec.whatwg.org/:使用するjQueryのメソッドは、注意点としては.data()

$('label').click(function() { 
 
    $('p').text($(this).data('value')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label data-value="hello">click</label> 
 
<p></p>

3

labelsvaluesinputを持っていないと、他のform要素が値を持つことができます。したがって、あなたの場合、属性値を受け取るのはjQueryのattr関数です。そして、このゲッターの周りに追加のブラケットは必要ありません。

$('label').click(function() { 
 
    $('p').text($(this).attr("value")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label value="hello">click</label> 
 
<p></p>

0
$('label').click(function() { 
    var value = $(this).attr('value'); 
}); 

また、私はvaluelabel要素に有効な属性ではないと思います。あなたは純粋なJSでこのように行うことができますjQueryをなし

...

Array.from(document.querySelectorAll('label')).forEach((label) => { 
    label.addEventListener('click',() => { 
     let value = label.getAttribute('value'); 
    }); 
}); 
+1

'div'はどうですか?それには値属性がありますか? –

+0

@ Jimenemexこれらは一般に入力要素にあります。 – alex

+0

@ Jimenemex no ['div'](https://html.spec.whatwg.org/multipage/semantics.html#the-div-element)要素には[グローバル属性](https://html.spec。 whatwg.org/multipage/dom.html#global-attributes) –

0

var lab = document.getElementsByTagName("label")[0], 
 
    pel = document.getElementsByTagName("p")[0]; 
 
lab.onclick = e => pel.textContent = e.currentTarget.getAttribute("value");
<label value="hello">click</label> 
 
<p></p>

関連する問題