2015-09-14 5 views
0

У меня есть в Wordpress список параметров, но он генерируется с автоматическим а-меню под-уровня - перед ним. Теперь я хочу их обвести, но не могу заставить его работать.Удалить все опции «-» внутри опции выбора

Я нацелил свои пункты меню и попытался исправить «-», чтобы удалить их.

var $menuitem = $(".hasCustomSelect .menu-item"); 

$menuitem.filter(function(){ 
    return $.trim($(this).text()) == '-' 
}).remove(); 

маленький codepen

http://codepen.io/denniswegereef/pen/NGGrgR

+1

Это потому, что облицовка только удаляет пробела. Вы не можете сделать триммер удалять других персонажей. Для этого вам нужен другой инструмент, например. 'Regex'. –

+0

Никогда не слышал об этом, посмотрю. – Dennis

+0

Что должно произойти с записями, которые являются только одним '-'? Как между 9,5 и 10? Это то, что вы после http://jsfiddle.net/j08691/acfsnmn1/? – j08691

ответ

2

Если я правильно понимаю. Проблема в том, что вы пытаетесь сопоставить неправильный вид тире - vs . Попробуйте это вместо return $.trim($(this).text()) == '—';

http://codepen.io/anon/pen/vNLZyv

+1

Я чувствую себя глупо, я не вижу разницы ... – Dennis

0

я могу видеть - против а -, попробуйте копировать пасту из codepen или ниже кода

Кроме того, я предполагаю, что вы хотите использовать

var $menuitem = $(".hasCustomSelect .menu-item"); 

$menuitem.filter(function(){ 
    return $.trim($(this).text()).indexOf('—')>-1;//all values containing `—` 
}).remove(); 

Или если вы действительно хотите удалить только один -

return $.trim($(this).text())=='—'; //the value that is `—` 

Обновлено Код Pen

+0

Если я совмещу код, чтобы удалить короткие штрихи, это не сработает. Это устраняет пробелы между ними. – Dennis

0

Если вы удаляете параметры разделителя, то, что вы хотели, тогда imtheman имеет solution for you.

Если вы хотите удалить ведущий тир из заголовков меню (мое первое предположение о том, что вам нужно), то вы можете пойти с ниже фрагментом кодой:

var $menuitem = $(".hasCustomSelect .menu-item"); 
$.each($menuitem, function(key, val){ 
    $(val).text($(val).text().replace(/—+ /,'')); 
}); 
Смежные вопросы