我正在尝试创建一个 html
字母。每封信可能有也可能没有附加条件。这些条件存储在外部 SQL 数据库
中。
如果 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>
简而言之,我的困境是我想测试数据库是否返回结果。
我知道这是一个奇怪的问题,但这是一个第三方数据库
,我只能在创建html的
套用信函。然而,预构建系统的功能非常有限(不能使用 if 或 then),因此我使用 基于Web的界面
内部对其进行读取访问javascript
来绕过这些限制。
我假设它对 div
中的数据类型做了一些棘手的事情,因为我已经尝试过 NULL 测试、“”测试、innerHTML
测试,使用i++ 计数器
、children
测试、haschildnode()
测试。到目前为止它已经拒绝了我所有的审讯。
如有任何帮助,我们将不胜感激。 谢谢
最佳答案
您在脚本中输入的条件是错误的。您已在 if
和 else
部分中将 NoConditions div
显示为内联。其次,Conditions div
的 innerHTML
的 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>
关于javascript - 如何使用 JavaScript 测试来自外部数据库内容的 HTML div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37382735/