2016-05-23 24 views
1

我正在尝试创建一个html字母。每封信都可能附带或不附带条件。这些条件存储在external sql database中。如何使用JavaScript测试外部数据库内容的HTML div?

如果一个html div包含的数据库领域,如: -

<div id="Conditions"> 
    <p>dbfield(var)</p> 
</div> 

我需要做的是测试得到的数据,而不是实际的div本身是什么。看看我的最后一次尝试: -

<div id="Conditions"> 
    <p>dbfield(conditions)</p> 
</div> 

<div id="NoConditions"> 
    <p>No specific conditions apply</p> 
</div> 

<script type="text/javascript" language="javascript"> 
<!-- 
    if (document.getElementById("Conditions").innerHTML.length == 0){ 
     document.getElementById("Conditions").style.display = "none"; 
     document.getElementById("NoConditions").style.display = "inline"; 
    } 
    else { 
     document.getElementById("NoConditions").style.display = "inline"; 
     document.getElementById("Conditions").style.display = "none"; 
    } 
//--> 
</script> 

简而言之,我的困境是我想测试结果是否从数据库返回或不。

我知道这是一个奇怪的一个,但是这是我只有读访问web based interface创建该html套用信函内third party db。然而,预构建系统的功能非常有限(不能使用if或之后的功能),因此为什么我使用javascript来解决这些限制。

我假设它是做什么用刁钻的div数据的类型,我曾尝试NULL测试“”测试,测试innerHTML,使用i++ counterchildren测试,haschildnode()测试。迄今为止,它一直抵制我的所有讯问。

任何援助将不胜感激。 谢谢

+0

是什么样子里面'Conditions'当你检查元素? – cuniculus

回答

0

您在脚本中输入的条件是错误的。您在ifelse部分都显示NoConditions div为内联。其次,Conditions div的的length将总是大于0,因为它每次都有一个p。取而代之的是p标签的innerHTML。以下是相同的摘录。我希望这可以解决您的查询。

var pText = document.getElementById("Conditions").getElementsByTagName('p')[0].innerHTML; 
 
if (pText.length == 0){ 
 
     document.getElementById("Conditions").style.display = "none"; 
 
     document.getElementById("NoConditions").style.display = "inline"; 
 
    } 
 
    else { 
 
     document.getElementById("Conditions").style.display = "inline"; 
 
     document.getElementById("NoConditions").style.display = "none"; 
 
    }
<div id="Conditions"> 
 
    <p>Conditions</p> 
 
</div> 
 

 
<div id="NoConditions"> 
 
    <p>No specific conditions apply</p> 
 
</div>

+0

感谢您的超级快速回答。现在完美运作。 style.display“inline”和“none”问题是我在编辑脚本过多次时发生的错误,而实际上却试图做我真正的工作:-P –

+0

很高兴工作! :) –

相关问题