检查空的 "href" 并在空的情况下附加锚文本
Checking for empty "href" and appending anchor text if it is empty
我在 Javascript
中有一个函数,它应该遍历 link 的 table 以检查 href
是否为空。如果 href
为空,它会在锚点之间添加一个文本块以指示尚未添加 link。我的代码如下:
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 的示例:
<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 个空白 link(A、B 和 C)。由于每个 links href
都是空的,我想在代码中的 if 中附加文本。
您缺少要比较的 == 运算符。
<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");
}
}
if(link = "")
无效。您正在通过 =
运算符定义值。它应该是 if(link == "")
.. 你的代码也可以缩小 - 真的不知道你在定义 table 和行。只是为了得到一个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);
}
}
下一行有错误
link = x.getAttribute("href");
x = rows[i].getElementsByTagName("A");
这样声明了returns 元素的集合。所以要使用函数 getAttribute,你应该将它应用到元素上,如下所示
if(x.length>0)
link = x[0].getAttribute("href");
您接下来的陈述需要相应修改。 link.GetElementByTagName 将不起作用,因为 link 没有任何 DOM 元素,只有一个字符串值。
你可以现场试一下here
快速简单:
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>
我在 Javascript
中有一个函数,它应该遍历 link 的 table 以检查 href
是否为空。如果 href
为空,它会在锚点之间添加一个文本块以指示尚未添加 link。我的代码如下:
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 的示例:
<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 个空白 link(A、B 和 C)。由于每个 links href
都是空的,我想在代码中的 if 中附加文本。
您缺少要比较的 == 运算符。
<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");
}
}
if(link = "")
无效。您正在通过 =
运算符定义值。它应该是 if(link == "")
.. 你的代码也可以缩小 - 真的不知道你在定义 table 和行。只是为了得到一个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);
}
}
下一行有错误
link = x.getAttribute("href");
x = rows[i].getElementsByTagName("A");
这样声明了returns 元素的集合。所以要使用函数 getAttribute,你应该将它应用到元素上,如下所示
if(x.length>0)
link = x[0].getAttribute("href");
您接下来的陈述需要相应修改。 link.GetElementByTagName 将不起作用,因为 link 没有任何 DOM 元素,只有一个字符串值。
你可以现场试一下here
快速简单:
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>