我使用Ajax方法变得更好。我不断遇到小问题。
例如,我正在尝试创建一个显示注释类型功能,当用户点击链接时,将打开一个模态窗口,其中包含合作伙伴代码的注释历史记录。
我已经使用PHP将数据返回到网格中。我不认为我需要显示用于返回数据的代码。
以下是我用于在HYPERLINK中存储数据属性和其他信息的ECHO:
<?php
......
echo "<td><a href='' id='pComment' name='".$row[partner_code]."'
class='comment' data-toggle='modal' data-code='".$row[partner_code']."'
data-name='".$row[partner_name]."'>" . $row[partner_name] . "</a></td>";
如您所见,我尝试将ROW数据[partner_code]存储在NAME属性中。我还有一个名为data-code的数据属性,它还包含$ row [partner_code]。
在我的javascript文件中,名为global.js,这是我到目前为止所拥有的:
$('a#pComment').on('click', function()
{
var partnercode = $('a').attr('data-code');
alert(partnercode);
}
我有php代码将检索partnercode并运行查询。这很好,但它是上面的javascript代码我遇到了问题。
目前,当我点击该链接时,我正在尝试提醒合作伙伴代码。但我唯一收到的是:
我试过了:
var partnercode = $('a#pComment').attr('data-code');
但是,对于我点击的每个链接,警告框都会显示0000000001。
我知道一旦我可以让窗口至少显示正确的合作伙伴代码,我就可以将其发送到我的PHP文件以运行查询以检索评论。但我无法理解这一点。
答案 0 :(得分:2)
您不能拥有重复的ID,因此请将其更改为类:
echo "<td><a href='' name='".$row[partner_code]."'
class='comment pComment' data-toggle='modal' data-code='".$row[partner_code']."'
data-name='".$row[partner_name]."'>" . $row[partner_name] . "</a></td>";
然后使用this
$('a.pComment').on('click', function()
{
var partnercode = $(this).attr('data-code');
alert(partnercode);
}
答案 1 :(得分:1)
第一次回答别人以外的其他人。
为什么不使用$(this)
?另外,为什么在你已经获得触发事件的元素时再次引用$('a')?选择$('a')
意味着你要选择所有这些,对吧?
jQuery也有数据方法供您使用。您可以在此处查看:http://api.jquery.com/data/
Idk,看看是否有任何帮助。
$('a#pComment').on('click', function()
{
var partnercode = $(this).data('code');
console.log(partnercode);
}