Frage jQuery Zugriff auf HTML5-Datenattribut


Wenn ich auf eine der Optionen klicke, versuche ich den Datenwert aus dem 'ul li a' zu bekommen und platziere ihn unten in Button, ich habe hier ein Geigenbeispiel eingerichtet: http://jsfiddle.net/q5j8z/4/

Aber es scheint nicht zu funktionieren

$('ul li a').click(function(e) {
    e.preventDefault();

    var value = $(this).data();

    $('.button').data('value');
});

Hat jemand bitte irgendwelche Ideen?


17
2018-06-05 09:23


Ursprung


Antworten:


Du kannst das:

$('ul li a').click(function (e) {
    e.preventDefault();
    var value = $(this).data('value');
    $('.button').data('value', value);
    console.log($('.button').data('value'));
});

Hier, $(this).data('value') wird verwendet, um die data Attributwert des Links

und $('.button').data('value', value) wird verwendet, um die data Attributwert der Schaltfläche.

Verwenden, console.log($('.button').data('value')); Sie können die Konsole überprüfen data Wert wird gesetzt.

FIDDLE DEMO

Für mehr Information:- .data () API-Dokumentation


15
2018-06-05 09:25



Benutze es so:

var value = $(this).data('value');

Und dann:

$('.button').data('value', value);

2
2018-06-05 09:25



Sie ordnen die Wertdaten der Schaltfläche tatsächlich nicht zu. Versuche dies:

$('ul li a').click(function(e) {
    e.preventDefault();

    var value = $(this).data();

    // assign the value form the clicked anchor to button value data
    $('.button').data('value', value);

    console.log($('.button').data('value'));
});

1
2018-06-05 09:27



Versuche dies:

$('ul li a').click(function(e) {
        e.preventDefault();

        var value = $(this).data('value');

        $('.button').data('value', value);
    });

Sie können den Wert der Schaltfläche mit console.log in Ihrer Konsole sehen mit:

console.log('data: '+$(".button").data("value"));

1
2018-06-05 09:25



Zuerst versuchen Sie, den Wert der Variablen einzufügen value oder "Wert" Literal?

data() soll ähnlich wie verwendet werden attr('attr-name', attr_value) Wie unten:

$('ul li a').click(function(e) {
    e.preventDefault();  
    var value = $(this).data('value');
    $('.button').data('value', value);
});

Das oben genannte funktioniert in deiner Geige.


0
2018-06-05 09:29



Beachten Sie, dass Sie kein Datenpräfix angeben müssen, da dies Jquery automatisch ausführt

Stellen Sie daher sicher, dass Sie das richtige Attribut für den Wert unten verwenden

$('ul li a').click(function(e) {
    e.preventDefault();
    var value = $(this).data('value');
    $('.button').data('value', value);
});

0
2017-12-10 10:05