0
votes

Comment puis-je analyser le HTML interne par nom de classe où html est affecté à une variable de chaîne dans Angular 7 / Typescript

Comment puis-je obtenir le texte interne de span par nom de classe? Ici, la variable adr_address n'est pas un élément DOM mais une chaîne.

var adr_address = '<span class="street-address">12 Stephenson Rd</span>, <span class="locality">Summertown</span>, <span class="region">TN</span> <span class="postal-code">38483-7005</span>, <span class="country-name">USA</span>';

var street-address = ??;
var locality = ??;
var region = ??;
var postal-code = ??;
var country-name = ??

console.log(street-address);
console.log(locality);
console.log(region);
console.log(postal-code);
console.log(country-name);

La sortie doit être comme ceci:

12 Stephenson Rd

Summertown p>

TX

38483-7005

USA


1 commentaires

adr_address n'est pas un élément DOM mais une chaîne. Vous devez utiliser regExp.


3 Réponses :


2
votes

Vous pouvez utiliser l'analyseur DOM

const parser = new DOMParser();
const doc = parser.parseFromString(htmlString, 'text/html');

__ now you can use query selectors on this doc __


3 commentaires

Comment puis-je écrire jQuery sur un projet Angular 7


var locality = doc.getElementsByClassName ('localité') [0] .innerHTML.toString‌ (); Cela a fonctionné pour moi, merci


N'utilisez pas jquery en angular. Aujourd'hui, js peut faire tout ce qui fait la renommée de jquery, mais en code natif. Le dernier commentaire que vous avez envoyé est l'un des moyens.



1
votes

Vous pouvez utiliser @ViewChild, par exemple:

html:

 @ViewChild('st') st;

 ngAfterViewInit(): void {
 console.log(this.st.nativeElement.innerHTML);

ts:

<span #st class="street-address">12 Stephenson Rd</span>

}


2 commentaires

Ici, la variable adr_address n'est pas un élément DOM mais une chaîne


puis essayez d'utiliser RegEx



0
votes

Cela a finalement fonctionné pour moi:

var adr_address = '<span class="street-address">12 Stephenson Rd</span>, <span class="locality">Summertown</span>, <span class="region">TN</span> <span class="postal-code">38483-7005</span>, <span class="country-name">USA</span>';
const parser = new DOMParser();
const doc = parser.parseFromString(adr_address, 'text/html');

var locality = doc.getElementsByClassName('locality')[0].innerHTML.toString(); 
var street-address = doc.getElementsByClassName('street-address')[0].innerHTML.toString();
var region = doc.getElementsByClassName('region')[0].innerHTML.toString();
var postal-code = doc.getElementsByClassName('postal-code')[0].innerHTML.toString();


0 commentaires