Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 getElementById,如果为null则跳过_Javascript_Getelementbyid - Fatal编程技术网

Javascript getElementById,如果为null则跳过

Javascript getElementById,如果为null则跳过,javascript,getelementbyid,Javascript,Getelementbyid,当它返回null时,它不会运行下一个getElementById。构建此结构的最佳方式是什么?将有12个可能的getElementById,但一个页面可能只有2-4个 document.getElementById(“RouteVoName”).textContent=“Tim”; document.getElementById(“routeThreeName”).textContent=“David”; document.getElementById(“RouteForName”).text

当它返回null时,它不会运行下一个getElementById。构建此结构的最佳方式是什么?将有12个可能的getElementById,但一个页面可能只有2-4个

document.getElementById(“RouteVoName”).textContent=“Tim”;
document.getElementById(“routeThreeName”).textContent=“David”;
document.getElementById(“RouteForName”).textContent=“Ricky”;
document.getElementById(“routeTenName”).textContent=“Ric”

名称
名称

通常,当您有这种重复逻辑时,您将逻辑封装在函数中:

function setText(id, text) {
    var element = document.getElementById(id);
    if (element) {
        element.textContent = text;
    }
    return element;
}
然后你可以这样做:

setText("routeTwoName", "Tim");
setText("routeThreeName", "David");
setText("routeFourName", "Ricky");
setText("routeTenName", "Ric");
以下是问题片段的更新版本:

函数setText(id,text){
var元素=document.getElementById(id);
if(元素){
element.textContent=文本;
}
返回元素;
}
setText(“路由器名称”、“Tim”);
setText(“routeThreeName”、“David”);
setText(“RouteForName”、“Ricky”);
setText(“路由名称”、“Ric”)

名称
名称

通常,当您有这种重复逻辑时,您将逻辑封装在函数中:

function setText(id, text) {
    var element = document.getElementById(id);
    if (element) {
        element.textContent = text;
    }
    return element;
}
然后你可以这样做:

setText("routeTwoName", "Tim");
setText("routeThreeName", "David");
setText("routeFourName", "Ricky");
setText("routeTenName", "Ric");
以下是问题片段的更新版本:

函数setText(id,text){
var元素=document.getElementById(id);
if(元素){
element.textContent=文本;
}
返回元素;
}
setText(“路由器名称”、“Tim”);
setText(“routeThreeName”、“David”);
setText(“RouteForName”、“Ricky”);
setText(“路由名称”、“Ric”)

名称
名称

所以设置一个变量,看看它是否存在

var x = document.getElementById("foo");
if (x) {
    x.textContent = "bar"
}

所以设置一个变量,看看它是否存在

var x = document.getElementById("foo");
if (x) {
    x.textContent = "bar"
}

代码在标题中:DSo您的实际问题是什么。目前还不清楚。我不知道你想对问题中的标记做什么,我删除了它,这样它至少会在第一次使用stackoverflow时显示你的文本抱歉。script.js文件有四个getElementById。当它运行时,它将加载RouteToName而不是RouteTenneName,因为routeThreeName和RouteForName为空。选择和运行正确元素的最佳方法是什么?@Donnie-FWIW,我用一个可运行的代码片段替换了您的代码块。如果可以的话,这会让人们很容易看到问题,并告诉你如何解决它。如果您愿意,下面是下一次如何做的:代码在标题中:DSo您的实际问题是什么。目前还不清楚。我不知道你想对问题中的标记做什么,我删除了它,这样它至少会在第一次使用stackoverflow时显示你的文本抱歉。script.js文件有四个getElementById。当它运行时,它将加载RouteToName而不是RouteTenneName,因为routeThreeName和RouteForName为空。选择和运行正确元素的最佳方法是什么?@Donnie-FWIW,我用一个可运行的代码片段替换了您的代码块。如果可以的话,这会让人们很容易看到问题,并告诉你如何解决它。如果你想的话,下面告诉你下一次该怎么做:谢谢!我尝试了一个if语句,但没有得到正确的逻辑。这很有帮助,谢谢!我尝试了一个if语句,但没有得到正确的逻辑。这很有帮助。