Как айти часть слова и удалить её?
Добрый день.
Столкнулся с задачей, которая казалась мне крайне простой. Но я ошибся:) Пол дня бьюсь с ней, все мои решения работаю неправильно. Есть вот такой код.
<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, время: 11:30. |