Nel mio html ho un elemento span
:ottenere i dati degli attributi
<span class="field" data-fullText="This is a span element">This is a</span>
E voglio ottenere l'attributo data-fullText
. Ho provato questi due modi, ma non ha funzionato (entrambi ritorno undefined
):
$('.field').hover(function() {
console.log('using prop(): ' + $(this).prop('data-fullText'));
console.log('using data(): ' + $(this).data('fullText'));
});
Poi ho cercato e trovato queste domande: How to get the data-id attribute? e jquery can't get data attribute value.
Le risposte di entrambi sono "Use .attr('data-sth') or .data('sth')"
.
So che .attr()
è deprecato (in jQuery-1.11.0, che utilizzo), ma, tuttavia, l'ho provato.
E ha funzionato!
Qualcuno può spiegare perché?
'$ (this) .data ('full-text') 'funzionerà come gli attributi sono inferiori. In effetti, dovresti impostarlo come: 'data-fulltext' o' data-full-text'. Per il seguito, quindi: '$ (questo) .data ('fullText')' funzionerebbe, usando la sintassi del caso cammello –
FYI, "Lo so.attr() è deprecato 'attr() non è deprecato, questo è il metodo da usare per impostare/ottenere attributo, non proprietà –
Quindi cosa dovrei usare -' prop' o 'attr'? –