在jquery中获取自定义属性值

时间:2014-02-05 10:43:57

标签: jquery html5

我有两个跨度,我有自定义属性。我想通过点击<a>来获取它的价值。这是我的html

<span data="<?php echo $key; ?>"><?php echo $answer['vote']; ?></span>
<a href="#" class="tup" rel="<?php echo $answer['id']; ?>"><span class="glyphicon glyphicon-thumbs-up design-thumbs" id="thumbs-up-ico"></span></a>

Jquery的

$(document).ready(function() {                       
$( ".tup" ).click(function(event) {
    event.preventDefault();
    var key = $('span').attr('data');
    alert(key);
});

这里我在alert中得到了未定义。我的错误是什么?谢谢

3 个答案:

答案 0 :(得分:5)

您很可能未定义,因为您没有选择所需的跨度,请使用.prev()来选择它

$( ".tup" ).click(function(event) {
    event.preventDefault();
    var key = $(this).prev().attr('data');
    //               ^^^^^^^^
    alert(key);
});

答案 1 :(得分:3)

您需要使用data-key(或其他值,data-id,data-attr ....)并使用.data(key)在jQuery中检索它 您需要使用prev()获取上一个元素 试试这个:
HTML

<span data-key="<?php echo $key; ?>"><?php echo $answer['vote']; ?></span>

的jQuery

$(document).ready(function() {                       
$( ".tup" ).click(function(event) {
    event.preventDefault();
    var key = $('span').prev().data('key');
    alert(key);
});

答案 2 :(得分:0)

以这种方式存储数据无效。 您可以将html5 data- *属性用于自定义属性,例如:

<!DOCTYPE html>
...
<span data-key="some data">value</span>
<script>
var key = $("span").data("key");
</script>