2012-01-07 3 views
0

У меня есть ul list с запросом и петлей while, отображающей li's внутри.Удалить границу из последнего li Элемент неупорядоченного списка

Каждый li имеет нижнюю границу. Мне нужно найти способ сделать последнее li не иметь границы.

Вот что я имею в виду:

<ul> 

$z = '0'; 

$anchors2 = mysql_query("SELECT * FROM anchors WHERE site_url = '$site_current2' AND site_type = 'slave' LIMIT 999 OFFSET 9"); 

while($anc2 = mysql_fetch_assoc($anchors2)){ 

    $z++; 

    $s_anchor2 = $anc2['site_anchor']; 

    $s_current2 = $anc2['site_current']; 

    if ($z != $total_number_of_rows){ // How can I get the total number of queried rows? 

     echo '<li><a href="'.$s_current2.'" title="'.$s_anchor2.'" target="_self">'.$s_anchor2.'</a></li>';    

    } else { 

     echo '<li style="border-bottom:none"><a href="'.$s_current2.'" title="'.$s_anchor2.'" target="_self">'.$s_anchor2.'</a></li>'; 
        }     
    } 

</ul> 

* * Проблема заключается в том, я нужен способ, чтобы узнать общее количество строк, чтобы сделать мой код работы и удалить границы последнего li

Любые идеи?

Просто попробовал с jquery, который я новичок ко мне. У меня есть несколько списков ul, и вот код:

function last_li_remove_border() { 
    $("ul.no_border_last_li li:last").each(function() { 
     css({border:'none'}); 
    }); 
} 

Как я могу заставить его работать?

Ty для ответов :)

+0

Количество строк запрашиваемых: http://php.net/manual/en/function.mysql-num-rows.php – Josh

ответ

1

3 способа:

  1. Используйте mysql_num_rows($anchors2), чтобы узнать, сколько строк есть.
  2. Используйте селектор последнего типа CSS
  3. Используйте jQuery или какую-либо другую библиотеку JS. JQuery будет выглядеть следующим образом:

    $("li:last").css({border-bottom:'none'});

Я бы выбрал 2, так как это означает, что HTML соответствует - вы не должны использовать встроенный CSS, если это возможно. Если не 2, то 1. Использование jQuery было бы моим последним средством, огромным пределом!

+0

Здравствуйте, очень сильно, мне нравится идея JQuery, попробовал код в моем ответе, не могли бы вы взглянуть? У меня есть несколько ul, которые нуждаются в их границах. Если я применяю код, который вы мне дали напрямую, похоже, работает только на последней ul – webmasters

+0

Использование jQuery - не лучший способ сделать это - используйте mysql_num_rows, чтобы узнать, сколько строк вместо этого. –

0

Почему вы не используете jquery для этого? используя li: в последний раз вы должны быть в состоянии сделать это!

+0

Я новичок с jquery, было бы здорово, не могли бы вы привести мне пример? Pls – webmasters

+0

Я думаю, у вас есть ответ, который вам нужен, со следующими комментариями:) –

0

Использование JQuery:

$ ("Ли: последняя") CSS ({граница: 'ни'}).

Быстрый ускоренный курс

$("li:last") explained 
$() is the JQuery call 
li:last (simple CSS selector) 
.css({border:'none'}) add a CSS parameter border:none 
0

Зачем использовать встроенное кодирование или jquery? Это легко сделать в css, и это логически входит в стиль. Это псевдокласс для последнего ребенка: http://www.quirksmode.org/css/firstchild.html

+0

Не совместим с несколькими браузерами, некоторые старые браузеры игнорируют его – Prof83

+0

Истина (черт возьми, то есть), но для этого есть исправления htc и js (см. Http://dean.edwards.name/IE7/), которые делают IE намного больше css2/3, и который позволит вам оставить вам код, поскольку он «должен быть» :) –

+0

JQuery = JS fix;) Собственно JQuery = Awesome и должен быть более широко использован – Prof83

0

Я согласен с Джереми.Используйте JQuery, чтобы справиться с этим с простой $('li:last').css({'border-bottom':'none'});

Но чтобы ответить на ваш вопрос, вы можете получить количество строк с mysql_num_rows(); $total_number_of_rows=mysql_num_rows($anchors2); будет работать в вашем примере

Не забудьте увеличить $ г только до конца петля - $z++

-ignore, что только что видел youare $ г ++ ING :) собирается пойти сделать больше кофе сейчас: D

0

Используйте :last-child псевдо-класс в CSS. Если предположить, что <ul> имеет класс «список», то CSS будет

ul.list li { border-bottom: 1px solid black; } 
ul.list li:last-child { border-bottom: none; } 
0

Я думаю, что вы спрашивали, как получить количество строк, если то правда, что вы можете попробовать: mysqli_num_rows

Смежные вопросы