JavaScript href toString() 检查字符串是否为空未给出预期结果
JavaScript href toString() Checking if string is empty not giving desired results
我正在检查 href 是否为空,如果是,则 JavaScript if statement
if ((ext_url_1).toString() != "") {
不应该运行它的命令。
但是到目前为止,无论href
是否为空,if statement
仍然是运行将<tr>
设置为display: block
的命令。
默认情况下 <tr>
在 css 样式中设置为 display: none
。
如果 href
不为空,JavaScript 应该只将 <tr>
设置为 display: block
。
我必须使用 JavaScript,而不是 jquery。
代码有什么问题吗?
<style>
#externaldocTR1 {
display: none;
}
</style>
<tr id="externaldocTR1">
<td>
<img id="externaldocImg1" src="pdf.gif"> <a id="externaldocURL1" href="">document</a>
<span id="externaldocExt1"></span>
</td>
</tr>
<script>
function file_get_ext(filename)
{
return typeof filename != "undefined" ? filename.substring(filename.lastIndexOf(".")+1, filename.length).toLowerCase() : false;
}
var ext_url_1 = document.getElementById("externaldocURL1").href;
var ext_url_2 = document.getElementById("externaldocURL2").href;
var ext_url_3 = document.getElementById("externaldocURL3").href;
var ext_1 = file_get_ext(ext_url_1);
var ext_2 = file_get_ext(ext_url_2);
var ext_3 = file_get_ext(ext_url_3);
var icon_pdf = "pdf.gif";
var icon_word = "word.gif";
var icon_excel = "excel.png";
var icon_img = "jpg.png";
var src_1 = document.getElementById("externaldocImg1");
var src_2 = document.getElementById("externaldocImg2");
var src_3 = document.getElementById("externaldocImg3");
if ((ext_url_1).toString() != "") {
document.getElementById("externaldocTR1").style.display = "block";
document.getElementById("externaldocExt1").innerHTML = " (" + (ext_1).toUpperCase() + ")";
if (ext_1 == "pdf") { ( (src_1).src = icon_pdf); }
else if (ext_1 == "DOC" || ext_1 == "DOCX" || ext_1 == "RTF") { ( (src_1).src = icon_word); }
else if (ext_1 == "XLS" || ext_1 == "XLSX" || ext_1 == "CSV") { ( (src_1).src = icon_excel); }
else if (ext_1 == "JPG" || ext_1 == "JPEG" || ext_1 == "GIF" || ext_1 == "PNG") { ( (src_1).src = icon_img); }
else { ( (src_1).src = "");
}
}
</script>
而不是尝试通过
获取元素的href
属性
var ext_url_1 = document.getElementById("externaldocURL1").href;
尝试
var ext_url_1 = document.getElementById("externaldocURL1").getAttribute("href");
因为这个 href 属性 may not be supported 在所有浏览器上