2013-05-28 5 views
0

У меня есть многомерный массив с неизвестным количеством вложенности. Мне просто нужно удалить <span class='highlight'> и </span>.Удалить определенное значение из многомерного массива

Как это сделать?

Моя идея состояла в том, чтобы создать строку JSON и заменить конкретное значение ничем, но каким-то образом это не сработает. Примечание: конкретное значение может существовать более одного раза.

Вот мой код для этого:

function removeHighlightFromData(aData){ 

var jsonData = JSON.stringify(aData) 
jsonData = jsonData.replace("<span class='highlight'>", ""); 
jsonData = jsonData.replace('<span class="highlight">', ""); 
jsonData = jsonData.replace("</span>", ""); 
return jQuery.parseJSON(jsonData); 

}

Любая идея, что это неправильно, или какие-либо другие подходы?

+0

Скрипка с некоторыми примерами данных будет хорошей. – techfoobar

+0

Можете ли вы привести пример «aData»? –

+1

Ну, вам следует избегать модификации dom с помощью строковых манипуляций. Кроме того, это приведет к удалению всех '', независимо от того, был ли он связан с одним из 'class =" highlight "' – smerny

ответ

0

Знаете ли вы, что ваш json имеет несколько вхождений строки, которую вы хотите заменить? Возможно, первое появление заменяется только потому, что вы не используете глобальный переключатель. Попробуйте:

jsonData = jsonData.replace(\<span class=\'highlight\'>/g, "");


&

jsonData = jsonData.replace(\/g, "");


заменить все вхождения.

Смежные вопросы