如何在jquery中使用自定义属性

时间:2014-02-05 11:26:45

标签: jquery html5

由于多种原因,我必须使用span自定义属性。在这里,我可以在点击<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>
<a href="#" class="tdown" rel="<?php echo $answer['id']; ?>"><span class="glyphicon glyphicon-thumbs-down" id="thumbs-down-icon"></span></a>

Jquery的

$(document).ready(function() {                       
$( ".tup" ).click(function(event) {
    event.preventDefault();
    var id = this.rel;
    var key = $(this).prev().attr('data');
    alert(key) ////////it's ok
});

$( ".tdown" ).click(function(event) {
    event.preventDefault();
    var id = this.rel;
    var key = $(this).prev().attr('data');
    alert(key);///////Undefined
});

});

我该如何解决这个问题?谢谢

修改 我给了它id。但我的id是用php中的数组给出的。所以我不得不使用另一个属性来识别id

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

1 个答案:

答案 0 :(得分:1)

只有当链接位于<span class="tup"><span class="tdown">旁边时,您的代码才有效。在任何其他情况下,它都不起作用。

您最有可能想使用以下选择器来查找范围:

$(this).prevAll('span[data]').last().attr('data');