Как айти часть слова и удалить её?
Добрый день.
Столкнулся с задачей, которая казалась мне крайне простой. Но я ошибся:) Пол дня бьюсь с ней, все мои решения работаю неправильно. Есть вот такой код. <div id="block-menu"> <ul class="menu"> <li>Категория 1(0)</li> <li>Категория 2(18)</li> <li>Категория 3(0)</li> <li>Категория 5(46)</li> <li>Категория 6(0)</li> </ul> </div> Мне необходимо скрыть (0) с помощью jQuery, чтобы получилось <div id="block-menu"> <ul class="menu"> <li>Категория 1</li> <li>Категория 2(18)</li> <li>Категория 3</li> <li>Категория 5(46)</li> <li>Категория 6</li> </ul> </div> Подскажите пожалуйста, как это можно реализовать? |
Цитата:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function hide() { $('#block-menu li').each(function (){ var o=$(this); var val=o.text(); val=val.replace(/\(0\)/gm,''); o.text(val); }); } </script> </head> <body> <div id="block-menu"> <ul class="menu"> <li>Категория 1(0)</li> <li>Категория 2(18)</li> <li>Категория 3(0)</li> <li>Категория 5(46)</li> <li>Категория 6(0)</li> </ul> </div> <button onclick='hide()'>hide (0)</div> </body> </html> |
Не можешь найти корень проблемы? Используй jQuery!
Серверный скрипт штампует лишние (0) - используй jQuery! Серверный скрипт не помечает меню классов active ? - используй jQuery! Сервер не имеет скриптовых интерпретаторов? - используй jQuery! Я люблю jQuery, я люблю новые тенденции :) |
Спасибо, в указанном мной варианте работает.
Но я не учел еще и вложенных списков. Если они есть, то всё ломается. <ul class="menu"> <li>Категория 1(0) <ul class="secondary"> <li>Подкатегория 1(36)</li> <li>Подкатегория 2(18)</li> <li>Подкатегория 3(0)</li> </ul> </li> <li>Категория 2(18)</li> <li>Категория 3(0)</li> <li>Категория 5(46)</li> <li>Категория 6(0)</li> </ul> |
neutron,
а выборку нужных li никак недобавить? $('.menu li') |
neutron,
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $.fn.replaceText = function (e, f, g) { return this.each(function () { var a = this.firstChild, c, b, d = []; if (a) { do 3 === a.nodeType && (c = a.nodeValue, b = c.replace(e, f), b !== c && (!g && /</.test(b) ? ($(a).before(b), d.push(a)) : a.nodeValue = b)); while (a = a.nextSibling) } d.length && $(d).remove() }) }; $(window).load(function () { $('.menu li').replaceText( /\(0\)/gi, '' ); }); </script> <title></title> </head> <body> <ul class="menu"> <li>Категория 1(0) <ul class="secondary"> <li>Подкатегория 1(36)</li> <li>Подкатегория 2(18)</li> <li>Подкатегория 3(0)</li> </ul> </li> <li>Категория 2(18)</li> <li>Категория 3(0)</li> <li>Категория 5(46)</li> <li>Категория 6(0)</li> </ul> </body> </html> |
Спасибо, помогло.
Вопрос исчерпан |
Часовой пояс GMT +3, время: 12:26. |