Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2013, 13:19
Новичок на форуме
Отправить личное сообщение для neutron Посмотреть профиль Найти все сообщения от neutron
 
Регистрация: 09.05.2011
Сообщений: 7

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


Подскажите пожалуйста, как это можно реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2013, 13:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,772

Сообщение от neutron
необходимо скрыть (0) с помощью jQuery
Как вариант...

<!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>
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2013, 13:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не можешь найти корень проблемы? Используй jQuery!
Серверный скрипт штампует лишние (0) - используй jQuery!
Серверный скрипт не помечает меню классов active ? - используй jQuery!
Сервер не имеет скриптовых интерпретаторов? - используй jQuery!

Я люблю jQuery, я люблю новые тенденции
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2013, 14:01
Новичок на форуме
Отправить личное сообщение для neutron Посмотреть профиль Найти все сообщения от neutron
 
Регистрация: 09.05.2011
Сообщений: 7

Спасибо, в указанном мной варианте работает.
Но я не учел еще и вложенных списков. Если они есть, то всё ломается.

<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>
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2013, 14:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,079

neutron,
а выборку нужных li никак недобавить?
$('.menu li')
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2013, 14:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,079

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>
Ответить с цитированием
  #7 (permalink)  
Старый 15.02.2013, 14:44
Новичок на форуме
Отправить личное сообщение для neutron Посмотреть профиль Найти все сообщения от neutron
 
Регистрация: 09.05.2011
Сообщений: 7

Спасибо, помогло.
Вопрос исчерпан
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите как удалить div alex2012 jQuery 5 13.10.2016 17:43
Как удалить элемент таблицы seoneo Элементы интерфейса 2 29.08.2012 17:54
Как удалить элемент из дерева DOM dummer jQuery 13 16.01.2011 15:19
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 13:45
Как частично удалить текстовую строку из набора? Nubi jQuery 2 27.12.2008 21:11