2013-05-25 17 views
9

Mam następujące HTML:Pobierz tekst wewnątrz tagu komentarza HTML?

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

I pobrania tego pliku dynamicznie przy użyciu metody GET jQuery i przechowywać ją w zmiennej o nazwie load_types strun.

Jak mogę usunąć znaczniki komentarza HTML i wszystko poza nimi? Chcę tylko wewnątrz HTML:

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

próbowałem użyć the solutions here ale nic nie działało prawidłowo - po prostu dostać null jak zapałki.

Dzięki za pomoc!

+1

wyrażenia regularne! –

+0

Próbowałem load_types.match (/ /g); bez skutku - właśnie dostałem zero. –

+0

Przeczytaj ten http://stackoverflow.com/questions/5653207/remove-html-comments-with-regex-in-javascript – GEMI

Odpowiedz

15

Proszę never use regex to parse HTML. Można użyć następujących zamiast:

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

Rodzime rozwiązanie JavaScript: http: //jsfiddle.net/4g3FT/, Natywne rozwiązanie JS zakładające ES5 http://jsfiddle.net/TUR65/ –

+0

@BenjaminGruenbaum Tak, właśnie to napisałem. Dzięki! – VisioN

+0

Proszę, edytuj ten kod w swojej odpowiedzi :) –