2013-06-05 25 views
17

Po kliknięciu jednej z opcji próbuję uzyskać wartość danych z "ul li a" i umieścić ją w przycisku poniżej, skonfigurowałem przykład skrzypiec tutaj: http://jsfiddle.net/q5j8z/4/jQuery z dostępem do atrybutu danych html5

Ale nie wydaje się, aby to działa

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

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

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

Czy ktoś ma jakieś pomysły proszę?

+0

zobaczyć ten zmodyfikowany skrzypce http://jsfiddle.net/q5j8z/16/ – Rinku

Odpowiedz

15

Można to zrobić:

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

Tutaj $(this).data('value') jest używany, aby uzyskać wartość atrybutu data łącza.

i $('.button').data('value', value) służy do ustawiania wartości atrybutu data przycisku.

Za pomocą, console.log($('.button').data('value')); można sprawdzić konsolę, dla której ustawiono wartość data.

FIDDLE DEMO

Aby uzyskać więcej informacji: - .data() API Documentation

+1

Wspaniałe dzięki bardzo dużo – Adam

+0

@adam Cieszę się, że pomogło! Zawsze możesz odwiedzić http://api.jquery.com/, jeśli masz jakiekolwiek wątpliwości co do jakiejkolwiek metody jQuery :) –

1

Spróbuj tego:

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

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

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

można zobaczyć wartość przycisk z console.log do konsoli z:

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

Użyj tego tak:

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

A potem:

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

Nie przypisujemy dane wartości do przycisku rzeczywiście. Spróbuj tego:

$('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')); 
}); 
0

pierwsze jesteś ty próbujesz wstawić wartość zmiennej value lub „wartości” dosłowne?

data() ma być używany do attr('attr-name', attr_value) Podobnie jak poniżej:

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

Powyższe prace w swoim skrzypcach.

0

Należy pamiętać, że nie ma potrzeby, aby określić data- prefiks ponieważ Jquery robi automatycznie

Więc zapewnić używasz odpowiedniego atrybutu do wartości poniżej

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