document.getElementsByClassName不影响元素

时间:2015-02-06 08:49:59

标签: javascript php pagination

我有以下脚本:

$i=1;
echo '<table>';
while($row=mysql_fetch_array){
  echo '<tr class="'.$i.'">';
  echo '<td>'.$row['value'].'</td>';
  echo '</tr>';
  $i++;
}
echo '</table>';

$i=1;
echo '<table>';
while($row=mysql_fetch_array){
  echo '<tr class="'.$i.'">';
  echo '<td>'.$row['value'].'</td>';
  echo '</tr>';
  $i++;
}
echo '</table>';
echo '<script>nr='.mysql_num_rows(query).'</script>';

使用Javascript:

$(document).ready(function(){ 
    for(i=26; i<=nr; i++){
        document.getElementsByClassName(i).style.display='none';    
    }
});

正如你可能想到的那样,我试图创建一个分页脚本。首先,不,我不想要一个已经制作的js分页脚本,我希望它能单独创建它(好吧)在我遇到某些问题时遇到一些帮助)。第一步是隐藏其他元素,从25 tr开始。但问题是document.getelementsbyclassname不会影响它们......首先我使用id for tr,它工作,但只适用于第一个表(因为id必须是唯一的,在我的情况下,id的值是相同的,所以我使用了类)。我无法弄清楚问题是什么......

2 个答案:

答案 0 :(得分:0)

不需要使用$i上课。请尝试使用 -

echo '<tr class="row-class">';

和jquery -

$(document).ready(function(){ 
    $('.row-class').each(function() {
        $(this).hide();
    })
});

如果需要,添加条件。

或者无需向行添加类。如果页面包含单个表,那么 -

$(document).ready(function(){ 
    $('table tr').each(function() {
        $(this).hide();
    })
});

答案 1 :(得分:-2)

类名不能以数字

开头

Can XHTML and HTML class attributes value start with a number?

您可以尝试指定课程'row'+ $ i

echo '<tr class="row'.$i.'">';
  echo '<td>'.$row['value'].'</td>';
 echo '</tr>';

js:

 for(i=26; i<=nr; i++){
        document.getElementsByClassName('row'+i).style.display='none';    
    }