2017-10-05 4 views
0

Ich bekomme eine JSON-Antwort von einem API in AngularJS. Ich habe Beschreibung darin. Beschreibung enthält HTML-Tags in Zeichenfolge. Ich möchte Antwort Artikel hier teilen.Get HTML Kind Element in HTML String

{ 
    name:'Name of Item', 
    Description:'<div>Details: Here is Details</div><div>Type: Here is Type</div>' 
} 

Ich möchte nur Details und Typ von Beschreibung in zwei verschiedene Zeichenfolgen trennen. Jeder Körper kann helfen. Ich habe versucht, Hilfe zu suchen, aber habe keine + ive oder Übereinstimmungsergebnis dafür erhalten.

Dank

+0

Können Sie nach einem [Minimal, vollständig und überprüfbar Beispiel] (https://stackoverflow.com/help/mcve) – bhansa

Antwort

3

Analysieren Sie die HTML-String, indem sie in einem Dummy Htmlelement Einfügen gespeichert wird. Dann können Sie auf den Text der Knoten zugreifen, indem Sie auf die textContent der childNodes zugreifen.

var data = { 
 
    name: 'Name of Item', 
 
    Description: '<div>Details: Here is Details</div><div>Type: Here is Type</div>' 
 
}; 
 

 
//Create a dummy element to hold the HTML 
 
var el = document.createElement('div'); 
 
el.innerHTML = data.Description; 
 

 
//Get child nodes; can use getElementById, querySelectorAll, etc. 
 
var details = el.childNodes[0].textContent; 
 
var type = el.childNodes[1].textContent; 
 

 
console.log(details); 
 
console.log(type);

+0

Dies funktioniert gut für mich, Thanks :) –

0

erster Auszug aus json die Beschreibung Teil.

sagen Lassen Sie Ihre json in

var response = API call(); 
    response.data.Description.split('</div>') 
1

können Sie eine Schnur manupulation zu tun brauchen. Genau wie unten.

var app = angular.module('app', []) 
.controller('ctrl', function ($scope) { 
    var data = { 
     name: 'Name of Item', 
     Description: '<div>Details: Here is Details</div><div>Type: Here is Type</div>' 
    } 

    $scope.data = data; 
    $scope.result = $scope.data.Description.split('</div>'); 
    $scope.result = $scope.result[0].slice(0, -1); //take the first value from array, and slice last char, which is comma 
    $scope.result = $scope.result + '</div>' //insert div at the end 
}) 
+0

ich dies umgesetzt, aber das ist nicht ein professioneller Weg, BTW Ich mag es :) @Rakesh Burbure –

+0

Ja, aber es ist nur ein Work around :) –