Используя объект "this", существует ли простой способ (в функции JS) получить значение тега, по которому щелкнули - PullRequest
0 голосов
/ 16 марта 2011

У меня есть элемент span

<span class="tag" onclick="clickTag(this)" tagType="property">

Который вызывает метод clickTag

function clickTag(clicked){
    alert(clicked.tagType);
}

Существует ли простой способ получить значение тега tagType, указанного в промежутке. Я использую jQuery, так что если это требуется, это не проблема. Конечно, любое другое стандартное решение JS приветствуется.

Или есть другой способ указать значение tagType и, таким образом, использовать его в методе clickTag ().

Ответы [ 3 ]

3 голосов
/ 16 марта 2011

http://api.jquery.com/attr/

$ (this) .attr ('tagType');

3 голосов
/ 16 марта 2011
function clickTag(clicked){
    alert(clicked.getAttribute("tagType"));
}

Я рекомендую использовать взамен «data-tagType», который является стандартным в HTML5:

<span class="tag" onclick="clickTag(this)" data-tagType="property">


function clickTag(clicked){
    alert(clicked.getAttribute("data-tagType"));
}

В jQuery вы можете использовать метод attr, но я не вижу в этом необходимости.

И, как говорит Джейсон Месьончек, вы должны использовать JavaScript для добавления прослушивателя событий.

2 голосов
/ 16 марта 2011
$(".tag").click(function() {
    var element = $(this),
        tagType;

    tagType = element.attr('tagType');
    alert(tagType);
});

Лучше назначать события нажатия с использованием чистого JavaScript, а не с использованием атрибутов на самих тегах. Таким образом, если у вас есть несколько тегов span, вам нужно указать обработчик клика только один раз.

...