2014-04-04 60 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