Tengo una cadena HTML muy grande, y quiero tomar ciertas etiquetas/elementos de ella dependiendo de un valor de identificación dado, si hay varias etiquetas en la cadena html, quiero tomarlas todas y sus contenidos.
en este momento estoy usando querySelectorAll para hacer esto, pero devuelve una lista de los identificadores (no es lo que quiero).
ejemplo: si busco una identificación que comience con el diente-311, me gustaría devolver algo como esto para las etiquetas que tienen ese diente-311 al comienzo de su identificación.
<g id="tooth-311-default"> <g> <g id="XMLID_9_"> <g> <path class="st16" d="M858.8,1050.8c0,0-1.8,11.3,5.2,12.3l24.2-5.5h0c0.8-2.1,1.8-5.1,1.6-7.6c0,0-9.6-14.6-18.2-11.9 C863,1040.7,858.8,1050.8,858.8,1050.8z"/> <path class="st16" d="M888.2,1057.5l-24.2,5.5C873.7,1064.6,888.1,1057.9,888.2,1057.5z"/> <path class="st25" d="M888.2,1057.5c-0.1,0.3-14.5,7.1-24.2,5.5c0,0,10.9,30,17.2,29.5c6.3-0.5,5.9-23,5.7-32.2 C886.9,1060.3,887.5,1059.2,888.2,1057.5L888.2,1057.5z"/> </g> <g> <path class="st20" d="M888.2,1057.5c0.8-2.1,1.8-5.1,1.6-7.6c0,0-9.6-14.6-18.2-11.9c-8.6,2.6-12.8,12.8-12.8,12.8 s-1.8,11.3,5.2,12.3c0,0,10.9,30,17.2,29.5c6.3-0.5,5.9-23,5.7-32.2C886.9,1060.3,887.5,1059.2,888.2,1057.5z"/> <path class="st20" d="M888.2,1057.5c-0.1,0.3-14.5,7.1-24.2,5.5"/> </g> </g> </g> </g>en este momento estoy intentando esto
var parser = new DOMParser(); var doc = parser.parseFromString(svg, "text/html"); var teeth = doc.querySelectorAll(`[id^=tooth-311]`); console.log(teeth)Donde svg es el nombre de la cadena html