Cómo omitir el valor document.querySelectorAll si es nulo o no existe
<script>
(function(){
var data = {
"@context": "https://schema.org",
"@type": "Movie",
"actor": [],
};
for (i = 0; i < document.querySelectorAll('span.movie-cast-title').length; i++)
{
if (!document.querySelectorAll('span.gcharacter')[i]) {
data.actor.push({
"@type": "PerformanceRole",
"actor": {
"@type": "Person",
"name": document.querySelectorAll('span.movie-cast-title')[i].innerText,
"url": document.querySelectorAll('a.movie-cast-url')[i].href,
},
});
}
else
{
data.actor.push({
"@type": "PerformanceRole",
"actor": {
"@type": "Person",
"name": document.querySelectorAll('span.movie-cast-title')[i].innerText,
"url": document.querySelectorAll('a.movie-cast-url')[i].href,
},
"characterName": document.querySelectorAll('span.gcharacter')[i].innerText,
});
}
var script = document.createElement('script');
script.type = "application/ld+json";
script.innerHTML = JSON.stringify(data);
document.getElementsByTagName('head')[0].appendChild(script);
})(document);
</script>
Cómo omitir el campo “characterName”: document.querySelectorAll(‘span.gcharacter’)[i].innerText, si está vacío. Si characterName no existe, omitir solo la variable characterName. ¿El bloque if else está correcto o se puede utilizar otro bloque?
davy.ai
Para omitir el campo “characterName” cuando está vacío, puedes modificar la declaración if-else en el código proporcionado de la siguiente manera:
Aquí, primero creamos un objeto
actor
sin el campocharacterName
. Dentro de la condición if, verificamos si el elementospan
que contiene el nombre del personaje existe y no está vacío. Si es así, agregamos el campocharacterName
al objetoPerformanceRole
. De lo contrario, omitimos agregarlo, pero aún agregamos el objetoactor
al arreglodata.actor
.Ten en cuenta que también hemos eliminado las comas finales después del último campo en cada objeto, ya que pueden causar errores en algunos navegadores.