получить доступ к элементу с данными ()? - PullRequest
2 голосов
/ 29 декабря 2011

Я не могу изменить идентификатор, я не могу изменить имя, и мне нужны два разных класса для стилизации элементов.

Можно ли получить доступ к элементу с данными ()? в основном, как я могу получить доступ к data-arrow="el"?

  $(".vote").data("arrow");
  $(".vote").click(function () {//here i need a selector that should have a permanent name

  //some code
  });

<a href="" class="vote" id="<?php echo $id ?>" name="up" data-arrow="el">up</a>
<a href="" class="vote" id="<?php echo $id ?>" name="down" data-arrow="el">down</a>

спасибо

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011
$("a.vote[data-arrow='el']").click(function(){
    alert("clicked");
});

Пример .

Это атрибут jQuery , равный селектору .

Но не лучше ли выбрать все элементы a с классом vote? Вот так:

$("a.vote").click(function(){...});

Также рекомендуется использовать on() для обработки событий:

$(document).on("click", "a.vote[data-arrow='el']", function(e){
    e.preventDefault();
    alert("clicked");
});

Пример . * * Тысяча двадцать-один

1 голос
/ 29 декабря 2011

Если вы пытаетесь получить доступ к данным кликаемого элемента из обработчика кликов, вы должны сделать это так:

$(".vote").click(function () {
    var arrow = $(this).data("arrow");
    // do whatever you want with the value of the arrow variable
});

Если вы пытаетесь создать селектор, используя значение стрелки данных, вы можете (как в посте Пурму), но было бы намного понятнее просто добавить еще один класс и использовать его в селекторе, как в:

<a href="" class="vote el" id="<?php echo $id ?>" name="up">up</a>

и селектор jQuery для выбора только этих элементов:

$(".vote.el")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...