检查空" href"如果它是空的,则附加锚文本

时间:2017-02-06 14:07:51

标签: javascript html href

我在Javascript中有一个函数,它应该迭代一个链接表来检查href是否为空。如果href为空,则会在锚点之间添加一个文本块,以指示尚未添加任何链接。我的代码如下:

function isWorking(){
    //Variable declaration
    var anchor, rows, i, link, x, y;
    anchor = document.getElementById("myTable");
    rows = anchor.getElementsByTagName("TR");
    for(i = 0; i < (rows.length - 1); i++){
        x = rows[i].getElementsByTagName("A");
        link = x.getAttribute("href");
        y = link.getElementsByTagName("FONT")[0];
        if(link = ""){
            y.innerHTML += "<b><font color=red> (not added yet)</font></b>";
        }
    }
}

目前,它并没有真正做任何事情。我在Javascript中不够精通,所以我很难理解可能需要更改的内容才能使此代码正常工作。

编辑:所以这是我在HTML中使用的表格的一个例子:

    <table id="myTable">
            <tr><td><a href="" target="_blank"><font size="4" color="white">C</a></font></td></tr>
        <tr><td><a href="" target="_blank"><font size="4" color="white">A</a></font></td></tr>
        <tr><td><a href="" target="_blank"><font size="4" color="white">B</a></font></td></tr>
    </table>

在示例中,我包括3个空白链接(A,B和C)。由于每个链接href都是空的,我想在代码中附加我的if中带有文本的文本。

4 个答案:

答案 0 :(得分:1)

if(link = "")无效..您正在通过=运算符定义值。它应该是if(link == "") ..你的代码也可以缩小 - 不知道你在为表和行定义什么。只是为了得到一个链接?更好的方法:

var links = document.querySelectorAll('#mydiv a'),
// gets all a links inside [mydiv] div...
i, href;

for(i = 0; i < links.length; i++) {
  href = links[i].getAttribute('href');
  //check the length of href.. is it less than 1 or is a space
  if(href.trim().length < 1) {
    alert(i + ' is null: ' + href);
  }

}

Here is a working example

答案 1 :(得分:0)

以下行有错误

link = x.getAttribute("href");

x = rows[i].getElementsByTagName("A");此语句返回元素集合。因此,要使用函数getAttribute,您应该将它应用于下面的元素

if(x.length>0)
link = x[0].getAttribute("href");

您的下一个陈述需要相应修改。 link.GetElementByTagName将不起作用,因为链接没有任何DOM元素,只是一个字符串值。

您可以直接试用here

答案 2 :(得分:0)

快速而简单:

function checkTableHref() {
        var elem = document.getElementsByTagName('a');
        for (i = 0; i < elem.length; i++) {
            if (elem[i].getAttribute("href") == "") {
                alert(null);
            }
            else {
                alert("Not Null");
            }
        }
    };

和html:

<table id="myTable">
    <tr>
        <td><a href="" target="_blank"><font size="4" color="white">C</a></font></td>
    </tr>
    <tr>
        <td><a href="" target="_blank"><font size="4" color="white">A</a></font></td>
    </tr>
    <tr>
        <td><a href="" target="_blank"><font size="4" color="white">B</a></font></td>
    </tr>
</table>

答案 3 :(得分:-1)

您缺少要比较的==运算符。

<input type=button id="links" text="Switch Mode" onclick="toggle_visibility()" class="" value="Check Link">
<br>
<a id='not_null' href=""></a>

function toggle_visibility() {    
         var x = document.getElementById('not_null');
         link = x.getAttribute("href");

         if (link =="")//Here you are missing
         {           
         alert("true! This is null");
         }      

  }