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

buc*_*321 5 html javascript php ajax jquery

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

select article_id, title from articles order by ...
Run Code Online (Sandbox Code Playgroud)

然后使用 PHP 将信息编码到元素的 id 中

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

我这样做是为了可以使用 javascript/jQuery 来获取 ajax 调用的 id,比如获取预览或其他内容

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

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

小智 2

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

例如

<span class="title" data-id="' . $id . '">'.$title.'</span>
Run Code Online (Sandbox Code Playgroud)

然后你可以通过 jQuery 访问它,如下所示:

$("span.title").click(function(){
    var id = $(this).data('id');
    $.ajax({
        ...
    });
});
Run Code Online (Sandbox Code Playgroud)