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 在所有浏览器上