我在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中带有文本的文本。
答案 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);
}
}
答案 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");
}
}