2013-05-25 3 views
9

У меня есть следующий HTML:Получить текст внутри тега комментария HTML?

<!-- 
<option value="HVAC">HVAC</option> 
<option value="Cooling">|---Cooling</option> 
<option value="Heating">|---Heating</option> 
--> 
.... 

Принести этот файл динамически с помощью метода GET JQuery и сохранить его в переменной строки с именем load_types.

Как удалить теги комментариев HTML и все за пределами них? Я хочу только внутри HTML:

<option value="HVAC">HVAC</option> 
<option value="Cooling">|---Cooling</option> 
<option value="Heating">|---Heating</option> 

Я пытался использовать the solutions here, но ничего не работало должным образом - я просто получить null как спичка.

Спасибо за помощь!

+1

Регулярные выражения! –

+0

Я попробовал load_types.match (/ /g); без толку - только что получил нуль. –

+0

Прочтите это http://stackoverflow.com/questions/5653207/remove-html-comments-with-regex-in-javascript – GEMI

ответ

15

never use regex to parse HTML. Вы можете использовать следующие вместо:

var div = $("<div>").html(load_types), 
    comment = div.contents().filter(function() { 
     return this.nodeType === 8; 
    }).get(0); 

console.log(comment.nodeValue); 

DEMO:http://jsfiddle.net/HHtW7/

+5

Исходное решение для JavaScript: http: //jsfiddle.net/4g3FT/, Исходное решение JS, предполагающее ES5 http://jsfiddle.net/TUR65/ –

+0

@BenjaminGruenbaum Да, я просто писал это. Благодаря! – VisioN

+0

Пожалуйста, не стесняйтесь редактировать этот код в ответ :) –

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