0

写真DBから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_idはではありclassませんId.removeClass()を使用します。クラスを削除します。

だから私はあなたの問題を抱えています...あなたはクラス名にidを書き、それをcで前置すると、すべての要素は次のようになります:c1、c2.....そしてあなたはcの数を取得したいと思います。

まず第一に:要素のdata-attributeを使用します。例:

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 に答える