我有两个跨度,我有自定义属性。我想通过点击<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中得到了未定义。我的错误是什么?谢谢
答案 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>