2017-07-14 1 views
0

HTML. Mon code ressemble:comment masquer l'étiquette si le contenu de l'étendue est vide

<p class="left" style="margin-top: 0.5em;"> 
<span class="left">8. 1. pamatslimība</span> 
<span style="float: right"> 
    <i data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-openehr-text-as-value="false" data-openehr-value-transformer="transformIcdTextToOnlyText"></i> 
    <span data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-tmpl="#square" data-openehr-text-as-value="true"></span> 
</span> 
</p> 

cant solution trouver comment cacher première travée (fonctionne comme étiquette), si la deuxième durée (valeurs) est emty.

Le code est utilisé pour créer un formulaire d'impression.

+0

vous avez trois travées là-dedans que l'on ne voulez-vous tester si vide? – jamiedanq

+0

si tout à l'intérieur de celui-ci "" est emty, puis cachez " 8. pamatslimība" – thomm3

+0

BTW avoir des chemins openEHR du côté client est pas une bonne solution, je recommanderais de les garder dans le backend et d'avoir du code ou un ID autogénéré sur l'interface graphique qui correspond aux chemins. –

Répondre

0
<p class="left" style="margin-top: 0.5em;"> 
<span class="left hideIfSpanEmpty">8. 1. pamatslimība</span> 
<span style="float: right"> 
    <i data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-openehr-text-as-value="false" data-openehr-value-transformer="transformIcdTextToOnlyText"></i> 
    <span data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-tmpl="#square" data-openehr-text-as-value="true"></span> 
</span> 
</p> 

solution trouvée avec le javascript

<script type="text/javascript"> 
function hideIfNextEmpty(el) { 
    var text = 'textContent' in document ? 'textContent' : 'innerText'; 
    if (el.nextElementSibling[text].replace(/\s/g, '').length === 0) { 
     el.style.display = 'none'; 
    } 
} 

var elements = document.getElementsByClassName("hideIfSpanEmpty"); 

for (var i = 0; i < elements.length; i++) { 
hideIfNextEmpty(elements[i]); 
} 
</script>