2015-01-18 3 views
-3

Узнайте больше о: Блэкджек | Крэпс | Кено | Рулетка | СлотыУдалить '|' символ с использованием jQuery

Хотелось бы иметь '|' символ удаляется с помощью jQuery. Причина в том, что я хочу превратить это в список.

HTML ниже:

<div class='category-static-links'> 
<a href='#'>Blackjack</a> | 
<a href='#'>Craps</a> | 
<a href='#'>Poker</a> | 
<a href='#'>Roulette</a> | 
<a href='#'>Slots</a> 
</div> 

Ура!

+1

Что вы попробуете, что не работают для вас до сих пор? – Antiga

+0

Ну ничего еще, я вроде как новый для jQuery, поэтому я не знаю, что лучше. – mdarmanin

+2

Сначала вы должны попробовать Google. Было бы довольно легко найти решение для удаления символа из элемента. SO не является местом для вас, чтобы скомпоновать код и попросить решение. – Antiga

ответ

1

С тех пор, как вы новичок, я сокращу вас. Пожалуйста, приложите усилия в следующий раз.

$('.category-static-links').contents().filter(function() { 
    return this.nodeType === 3; 
}).remove(); 

Demo

Обратите внимание, что, поскольку этот метод удаляет все текстовое содержание, которое не в дочерний элемент, вы, вероятно, хотите добавить некоторый запас или отступы для разделения ссылок:

.category-static-links a {margin-right: 8px;} 
+0

Использование 'nodeType' кажется очень запутанной альтернативой' $ ('. Category-static-links'). Html(). Replace (/ \ | +/g, "") ' – souldeux

+0

Не стесняйтесь предоставлять альтернативный ответ , Ваше предложение не работает для меня, как я понял. http://jsfiddle.net/isherwood/hgtuc694/3/ – isherwood

+0

Он работает, если вы ставите одинарные кавычки вокруг '' .category-static-links'' при определении переменной 'myContent'. Ваша скрипка опустила их. – souldeux

1

Только

$links = $('.category-static-links'); 
$links.html($links.find('a')); 
+0

Это красиво и просто. Сохраняет ли он обработчики событий и т. Д.? – isherwood

+0

Нет, если обработчики не связаны с родительским элементом. – Anon

+0

В этом случае +1. Добро пожаловать, и хороший первый ответ. – isherwood

0

Почему это должно быть jQuery, когда вы можете просто использовать JavaScript?

var os=document.getElementsByTagName('div'); 
var links=[]; 

for (var i=0;i<os.length;i++){ 
    var o=os[i]; 
    if (o.className=='category-static-links') { 
     var as=o.getElementsByTagName('a'); 
     for (var j=0;j<as.length;j++) links.push(as[j].innerHTML); 
     break; 
    } 

} 
+0

Почему вы не используете метод 'querySelector' или' querySelectorAll' вместо этого дорогого/хрупкого/ошибочного способа фильтрации элементов? Также как нажимать эти 'a' элементы в массив отвечают на вопрос? – undefined

+0

На самом деле это происходит под капотом. Код более надежный, чем jQuery. Вышеприведенный код работает на IE5; ваш код jQuery даже не загружается. ОП запрашивает анализ данных в списке. Если «список» - это массив, в отличие от неупорядоченного списка, тогда будет достаточно массива. Я не нажимаю «a» элементы, а внутреннийHTML, т. Е. CONTENT элемента. Он может использовать этот массив, чтобы восстановить список, если захочет. – Schien

+0

На самом деле вопрос очень неясен, возможно, OP может использовать этот код для достижения своей цели. Я не отправил ответ! IE5? Шутки в сторону? Говорить, что jQuery не является надежным, не имеет большого смысла. Мне также нравится ванильный JavaScript, но jQuery ** является ** надежным, по крайней мере, когда речь идет о выборе целевых элементов. – undefined

1

Риск ответа на вопрос, который вы не задали, может я предлагаю вам не делать этого. Если вы обнаружите, что выполняете регулярное выражение по вашему тексту, чтобы добиться косметических изменений, вы, вероятно, делаете слишком много работы для себя, и в итоге вы получите код, который трудно понять в следующем году (или на следующей неделе). Я бы предложил начать со списка и использовать css для создания одной строки, когда вам это нужно.

<ul id="Thelist" class='category-static-links'> 
    <li><a href='#'>Blackjack</a> </li> 
    <li><a href='#'>Craps</a> </li> 
    <li><a href='#'>Poker</a></li> 
    <li><a href='#'>Roulette</a> </li> 
    <li><a href='#'>Slots</a></li> 
</ul> 

Затем вы можете просто заменить класс на jQuery (или ванильный javascript).

Вот быстрая, простая скрипка: http://jsfiddle.net/markm/vbto9v5q/

+0

Марк, я голосовал за свой ответ вместо своего, потому что, хотя это может быть не так, как было задано, я думаю, что это будет работать лучше. Вы ответили на проблему с корнем, то есть проблема могла быть улучшена? И ваш ответ является полным и полным. Я слишком ленив, чтобы «управлять» OP частично потому, что я не хочу иметь дело с потенциальной обратной косой чертой. Путь к работе! – Schien