我应该避免在id属性中编码信息

时间:2013-03-06 06:24:42

标签: php javascript jquery html ajax

最近我养成了在我的ID中编码某些信息的习惯。例如,查询数据库

select article_id, title from articles order by ...

然后使用PHP对元素id中的信息进行编码

foreach($article as $id=>$title){
    echo '<span class="title" id="a_'.$id.'">'.$title.'</span><br />';
}

我是这样做的,这样我就可以使用javascript / jQuery获取ajax调用的id,比如说获取预览或其他东西

$("span.title").click(function(){
    var idArr = $(this).attr('id').split('_');
    data = {};
    data.id = idArr[1];
    $.ajax({
        ...
    });
});

我从未见过这种提倡的方法,所以我开始怀疑自己是否为某种灾难做好准备。

1 个答案:

答案 0 :(得分:2)

如果您使用的是HTML5,则可以使用数据属性。

e.g。

<span class="title" data-id="' . $id . '">'.$title.'</span>

然后你可以通过jQuery访问它:

$("span.title").click(function(){
    var id = $(this).data('id');
    $.ajax({
        ...
    });
});