2014-04-04 63 views
0

我在PHP中有一个foreach循环,我想改变由jQuery循环创建的一个元素的类。jQuery - 一个foreach元素的addClass

PHP:

<? foreach($todos as $todo): 
    $id = $todo["id"]; 
?> 
<div class="item"> 
    <a href="?action=do&id=<?=$i?>" id="do">[ ]</a> 
    <a href="?action=undo&id=<?=$id?>" class="undo">[x]</a> 
    <a href="?action=delete&id=<?=$id?>" class="delete">supprimer</a> 
    <?=$todo['text']?> 
</div>       
<? endforeach; ?> 
<div class="infos">3 restants</div> 

的jQuery:

$(function(){ 
    $('.do').click(function() { 
    $(this).addClass('.hidden'); 
    }); 
}); 
+1

你正在创建重复的ID'do'。这不是有效的HTML。 – Barmar

+0

你有一个'$ i',它可能应该是'$ id'。 –

回答

-1

这似乎是id="do"所以你必须使用#do为jQuery选择或更改为一个类属性。

+0

['id属性提供document.'内为元素的唯一标识符(http://reference.sitepoint.com/html/core-attributes/id)含义,应切换到'class'属性代替切换你的选择器。 – Sam

2
$(function(){ 
    $('#do').click(function() { 
    $(this).addClass('.hidden'); 
    }); 
}); 

id是'#'。不是'。'

3

您应该在HTML中使用class="do",否则您正在创建重复的ID。

<?php foreach($todos as $todo): $id = $todo["id"]; ?> 
    <div class="item"> 
     <a href="?action=do&id=<?php echo $id; ?>" class="do">[ ]</a> 
     <a href="?action=undo&id=<?php echo $id; ?>" class="undo">[x]</a> 
     <a href="?action=delete&id=<?php echo $id; ?>" class="delete">supprimer</a> 
     <?php echo $todo['text']; ?> 
    </div>      

<?php endforeach; ?> 

你这样做是正确的undodelete,你只是犯了这个错误的do

+0

他在'foreach'循环中创建了这些元素,所以'$ todos'的每个元素都有一个元素。 – Barmar

+0

对不起的做ID是一个错误,我做了尝试型动物之前,但我将其更改为一类,它仍然不到风度的工作。 我不确定用同一个类创建一个具有foreach的新元素是一种很好的方式来选择它们。我需要在foreach中增加类名称,但我该怎么办?我怎样才能用JQuery来选择它? – ansmonjol

+0

对所有人使用相同的类是正确的方法。但是我不确定你期望你的Javascript做什么,因为点击链接后会在页面后面重新加载页面。 – Barmar