0

我正在尝试从照片数据库中删除 ID,但在 li 标签中我有类别编号,并且我已将其设置为类。代码如下:

$().ready(function() {
  $(".delete").on("click",function(e) {
        e.preventDefault();
        var ID = encodeURI($(this).attr("id"));
        var CAT = $(".photos li").attr("class");
        alert(CAT);
    });
});
<ul class="photos">
$sql = mysql_query("SELECT * FROM photos ORDER BY id DESC");
while($data = mysql_fetch_array($sql)){
 echo "<li class='c".$data['cat_id']."'><a href='#' class='delete' id='".$data['id']."'>".$data['photo_name']."</a></li>";
 }

我正在使用多个类别,但是当我单击删除结果是c1

4

2 回答 2

1

如果您尝试删除照片的 ID 而不是类别 ID,为什么还要为它编写代码?以下内容应提醒您注意您单击的该照片删除链接的 ID。似乎e.preventDefault();在函数的开头有阻止其他任何东西的执行。

$(document).ready(function() {
    $(".delete").click(function(event) {
        var ID = encodeURI($(this).attr("id"));
        var CAT = $(this).closest("li").attr("class");
        alert(ID + " " + CAT);
        e.preventDefault();     
    });
});​

http://jsfiddle.net/Cq49P/5/

于 2012-12-24T22:54:56.247 回答
0

Cat_idclass不是Id. 使用.removeClass()。删除类。

所以只是我得到了你的问题......你在类名中写下id,用c作为前缀,然后所有元素都像:c1,c2......你想得到c的数量。

首先:在元素上使用数据属性。例子:

echo "<li class='' data-cat_id=".$data['cat_id']."'><a href='#' class='delete' id='".$data['id']."'>

(不是 php 专家,但您的结果 html 应该如下所示:<li class='' data-cat_id="1".... 这是我建议您应该使用的方式。

如果你真的必须用类来做你可以这样做:

$(function($) {
    var CAT = $("li").each(function() {
        var CAT = this.className.split(' ');
        var regex = /^c[0-9]*$/;
        $.each(CAT, function(){
            if(this.match(regex )){
                alert(this.split('c')[1]);
            }
        });
    });      

});
​[Fiddler][2].
于 2012-12-24T23:05:01.967 回答