Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查href是否未定义,是否为true警报smth(不带jQuery)_Javascript_Html_Class_Href - Fatal编程技术网

Javascript 检查href是否未定义,是否为true警报smth(不带jQuery)

Javascript 检查href是否未定义,是否为true警报smth(不带jQuery),javascript,html,class,href,Javascript,Html,Class,Href,我想检查标记的“href”是否为空,如果为空,则应发出类似“站点不可用atm”的警报,如果链接正确,则不应执行任何操作 HTML 谢谢:)顾名思义,getElementsByClassName生成多个元素;它们的href属性组合永远不能等于空字符串。顾名思义,getElementsByClassName产生多个元素;它们的href属性的组合永远不能等于空字符串。getElementsByClassName返回元素的集合,您需要循环检查每个元素的href function testif(){

我想检查
标记的“href”是否为空,如果为空,则应发出类似“站点不可用atm”的警报,如果链接正确,则不应执行任何操作

HTML


谢谢:)

顾名思义,
getElementsByClassName
生成多个元素;它们的
href
属性组合永远不能等于空字符串。

顾名思义,
getElementsByClassName
产生多个元素;它们的
href
属性的组合永远不能等于空字符串。

getElementsByClassName返回元素的集合,您需要循环检查每个元素的href

function testif(){
    var links = document.getElementsByClassName("link");
    for(var i = 0; i < links.length; i++) {
        if (links[i].getAttribute("href") == ""){
            alert('Site isn't available');
            return;
        }
    }
}
函数testif(){
var links=document.getElementsByClassName(“链接”);
对于(变量i=0;i
getElementsByCassName返回元素的集合,您需要遍历每个元素以检查其href

function testif(){
    var links = document.getElementsByClassName("link");
    for(var i = 0; i < links.length; i++) {
        if (links[i].getAttribute("href") == ""){
            alert('Site isn't available');
            return;
        }
    }
}
函数testif(){
var links=document.getElementsByClassName(“链接”);
对于(变量i=0;i
一种可能的方法是传入事件并检查事件

功能测试f(e){
//防止实际转到另一个url,请随意删除该行
e、 预防默认值();
//在IE 6-8支持的情况下
var target=e.target | | e.src元素;
如果(!target.getAttribute('href'))警报(“站点不可用”);
}

一种可能的方法是传入事件并检查事件

功能测试f(e){
//防止实际转到另一个url,请随意删除该行
e、 预防默认值();
//在IE 6-8支持的情况下
var target=e.target | | e.src元素;
如果(!target.getAttribute('href'))警报(“站点不可用”);
}

您可以通过
事件获取并测试单击的链接。目标

功能测试f(e){
e、 预防默认值();
target=e.target | | e.srcElement;//支持IE6-8
if(target.getAttribute(“href”)=“”){
console.log(“站点不可用”)
};

您可以通过
事件获取并测试单击的链接。目标

功能测试f(e){
e、 预防默认值();
target=e.target | | e.srcElement;//支持IE6-8
if(target.getAttribute(“href”)=“”){
console.log(“站点不可用”)
};


您的问题是什么?您的问题是什么?是否有其他方法解决此问题?:是否有其他方法解决此问题?:使用e时必须注意IE。target@B.Assem非常正确,但这适用于较旧的IE版本(6-8)。希望OP不必支持这么旧的内容。但是,我会将其添加到答案中。它不必支持旧版本^^将传递对链接元素本身的引用。@PatrickDenny使用事件来防止默认值,这样演示就不会转到正在使用的url,但这也会起作用。使用e时请注意IE。target@B.Assem非常正确,但这适用于较旧的IE版本(6-8)。希望OP不必支持这么旧的内容。但是,我会将其添加到答案中。它不必支持旧版本^^将传递对链接元素本身的引用。@PatrickDenny使用事件来防止默认值,这样演示就不会转到正在使用的url,但这也可以工作。
function testif(){
    var links = document.getElementsByClassName("link");
    for(var i = 0; i < links.length; i++) {
        if (links[i].getAttribute("href") == ""){
            alert('Site isn't available');
            return;
        }
    }
}