Mam wiele elementów HTML (np. Przyciski), które wszystkie robią to samo po naciśnięciu, ale potrzebuję identyfikatora każdego elementu na imprezę. Czy jest dobry sposób na przechowywanie informacji, więc mój skrypt może określić przycisk, który dokładnie został wciśnięty?

Mój kod wygląda mniej więcej tak:

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(function() {
    $('.myButtons').click(function() {
        var id = // the id of the button
        // do stuff with the id
    });
    }); 
    </script>
</head> class='default'
<body>
<input type='button' class='myButtons' value='Button Id 1' />
<input type='button' class='myButtons' value='Button Id 2' />
<!-- lots more ... -->
</body>
</html>

Jeśli zapiszę ją jako numer w id - lub class - atrybut, nie będę mógł być pewien, że element jest wyjątkowy, a identyfikator / klasa nie będzie bardzo pouczająca. Jeśli zapisujesz go jako kombinację etykiety i identyfikatora, np. button14, musiałbym przeanalizować ciąg przed uzyskaniem identyfikatora. To nie jest bardzo miły sposób na to.

0
Frithjof 29 listopad 2013, 02:19

2 odpowiedzi

Najlepsza odpowiedź

Użyj atrybutu danych HTML5, aby zapisać te informacje, na przykład:

<input type='button' class='myButtons' value='Button Id 1' data-my-id="foo" />
<input type='button' class='myButtons' value='Button Id 2' data-my-id="bar" />

I przeczytaj atrybut za pomocą

$('.myButtons').click(function() {
    var id = this.getAttribute("data-my-id");
});

Zamiast getAttribute możesz oczywiście używać jQuery, jeśli wolisz:

var id = $(this).attr("data-my-id");
3
Jon 28 listopad 2013, 22:21

Lub możesz tringować coś takiego

$(function(){
    $(".myButtons").click(function() {
        alert($(this).attr("value"));
    });
});
-1
Andrew Liu 28 listopad 2013, 22:48