$(this).attr('id')在jQuery中给出空值

时间:2018-04-13 17:12:18

标签: javascript jquery html-framework-7

我的链接如下:

<a href="#" id="<?php $res['id'];?>" class='bid_accept'>Accept</a>

我需要使用Framework7将id的值传递到另一个页面,如下所示:

$$('.bid_accept').on('click', function (e) {
e.preventDefault();
var value = $(this).attr('id');
var jsonstring = JSON.stringify(value);
myApp.confirm('Are you sure?', 'Custom Title', 
function (jsonstring) {
myApp.alert('Your name is "' + value + '". You clicked Ok button');
   },
function () {
myApp.alert('You clicked Cancel button');
   }
  );
});      

我收到提醒信息:

  

您的姓名是“”。您单击了确定按钮

我也尝试过:

var value = this.id;

为什么我没有获得id值?

2 个答案:

答案 0 :(得分:0)

如果您使用JSON.stringfy(value),则表示您正在使用JSON值设置该ID,我不知道我是否正在写,但ID属性采用1个单词的名称而JSON.stringfy()生成多个单词由空格分隔。更别说我认为ID具有特定数量的字符,因此您可能正在初始化一个非常长的名称。 不确定你想要实现什么,但HTML允许你添加自己的属性并在JQuery中读取它们:

<a href="#" myAttr="<?php $res['id'];?>" class='bid_accept'>Accept</a>

这样当您点击代码时就会像:

$$('.bid_accept').on('click', function (e) {
var value = $(this).attr('myAttr');
....
}

答案 1 :(得分:0)

此行有错误

<a href="#" id="<?php $res['id'];?>" class='bid_accept'>Accept</a>

将其更改为

<a href="#" id="<?php echo $res['id'];?>" class='bid_accept'>Accept</a>

在jquery部分而不是$中你必须使用$$。

var value = $$(this).attr('id'); // check $$ sign