jQuery选择器没有获取所有行

时间:2014-08-26 13:21:01

标签: javascript php jquery jquery-selectors

我对jquery选择器有一些小问题。当我像这样编写HTML时:

<?php
for($i=1; $i<=3; $i++)
{
    echo "<div>";
    for($j=1; $j<=3; $j++)
    {
        if($j==2)
            echo "<div id='n$i$j' class='news-container has-border'>$i$j</div>";
        else
            echo "<div id='n$i$j' class='news-container'>$i$j</div>";
    }
    echo "</div>";
    }
?>

我可以稍后使用jquery访问所有div,除了第三行中的那些,如下所示:

$("#n11").css("background-color","red"); <-- WORKS
$("#n21").css("background-color","red"); <-- WORKS
$("#n31").css("background-color","red"); <-- NOT WORKING

此javascript代码也可以使用

for(i=1; i<=3; i++)
    for(j=1; j<=3; j++)
        console.log($("#n"+i+j).attr("id"));
它将所有9个id写入控制台。但是这段代码只改变了前6个div。

for(i=1; i<=3; i++)
    for(j=1; j<=3; j++)
        $("#n"+i+j).html("news"); 

我试图以各种方式连接但总是得到相同的结果..

在应用anyslider()插件后确定..我已经将id更改为类并且它有效..所以我想这个问题不是固定的只是欺骗了!

1 个答案:

答案 0 :(得分:2)

    if($j==2) {
        echo "<div id='n".$i.$j."' class='news-container has-border'>".$i.$j."</div>";
    } else {
        echo "<div id='n".$i.$j."' class='news-container'>".$i.$j."</div>";
    }

我想你错过了#

 $("#n11").css("background-color","red"); 
 $("#n21").css("background-color","red"); 
 $("#n31").css("background-color","red"); 

为我工作:

<script>
$(document).ready(function(){
 $("#n11").css("background-color","red"); 
 $("#n12").css("background-color","red"); 
 $("#n13").css("background-color","red"); 
});
</script>

在php中

<?php
    for($i=1; $i<=3; $i++)
    {
        echo "<div>";
        for($j=1; $j<=3; $j++)
        {
            if($j==2) {
                echo "<div id='n".$i.$j."' class='news-container has-border'>".$i.$j."</div>";
            } else {
                echo "<div id='n".$i.$j."' class='news-container'>".$i.$j."</div>";
            }
        }
        echo "</div>";
    }
?>