Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/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
DOM1 Javascript不工作_Javascript - Fatal编程技术网

DOM1 Javascript不工作

DOM1 Javascript不工作,javascript,Javascript,我可能是用了错误的方法,我首先学习了Jquery,而且很简单。学习javascript学习DOM0和DOM1的课程,却无法实现这一点 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript"> function addBorder(){ for var i=0; i<document.getElementsByTagName(

我可能是用了错误的方法,我首先学习了Jquery,而且很简单。学习javascript学习DOM0和DOM1的课程,却无法实现这一点

<!DOCTYPE html>

<html lang="en">

<head>
<script type="text/javascript">
     function addBorder(){
          for var i=0; i<document.getElementsByTagName('img').length; i++) {
               document.getElementsByTagName('img')[i].style.border="3px solid red");
          }
     }
</script>
<script type="text/javascript">
     window.onload=addBorder;
</script>
</head>

<body>
<img src="image1.jpg" />
<img src="image2.jpg" />

</body>

</html>

函数addBorder(){

对于var i=0;i我在正确修复代码语法后立即看到图像上的红色边框:

 function addBorder() {
      for (var i=0; i < document.getElementsByTagName('img').length; i++) {
           document.getElementsByTagName('img')[i].style.border = "3px solid red";
      }
 }
函数addBorder(){
对于(var i=0;i
只要我正确地修改了代码的语法,我就在图像上看到了红色边框:

 function addBorder() {
      for (var i=0; i < document.getElementsByTagName('img').length; i++) {
           document.getElementsByTagName('img')[i].style.border = "3px solid red";
      }
 }
函数addBorder(){
对于(var i=0;i
正如Ryan指出的,您的源代码中有一个输入错误(在
var
i
之间需要一个空格)

尽管这是一个初学者类,但您可能希望从一开始就养成良好的习惯。通常,应该尽可能少地查看DOM。每次调用
document.getElementsByTagName('img')时,您的函数都会转到DOM
。由于它在for循环中,这可能会很多。当然,在您的示例中只有两个img标记,但请考虑将此脚本应用到实际页面

通常最好触摸DOM一次,然后将结果缓存到变量中,如下所示:

function addBorder() {
      var images = document.getElementsByTagName('img');
      for (var i=0; i < images.length; i++) {
           images[i].style.border = "3px solid red";
      }
}
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">

    (function () {
          var images = document.getElementsByTagName('img');
          for (var i=0; i < images.length; i++) {
               images[i].style.border = "3px solid red";
          }
    })();

</script>
</head>

<body>
  <img src="image1.jpg" />
  <img src="image2.jpg" />
</body>

</html>

正如Ryan指出的那样,您的源代码中有一个输入错误(在
var
i
之间需要一个空格)

尽管这是一个初学者类,但您可能希望从一开始就养成良好的习惯。通常,应该尽可能少地查看DOM。每次调用
document.getElementsByTagName('img')时,您的函数都会转到DOM
。由于它在for循环中,这可能会很多。当然,在您的示例中只有两个img标记,但请考虑将此脚本应用到实际页面

通常最好触摸DOM一次,然后将结果缓存到变量中,如下所示:

function addBorder() {
      var images = document.getElementsByTagName('img');
      for (var i=0; i < images.length; i++) {
           images[i].style.border = "3px solid red";
      }
}
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">

    (function () {
          var images = document.getElementsByTagName('img');
          for (var i=0; i < images.length; i++) {
               images[i].style.border = "3px solid red";
          }
    })();

</script>
</head>

<body>
  <img src="image1.jpg" />
  <img src="image2.jpg" />
</body>

</html>

你能被指定吗?我复制并粘贴了,但还是什么都没有。这里的页面:你能被指定吗?我复制并粘贴了,但还是什么都没有。这里的页面:谢谢,我修复了输入错误,但它不在实际的源代码中。仍然不工作。这里的新代码:完整,不工作。我不明白为什么。另外,你可以做的一些事情是很快地测试JavaScript的e开发者控制台(Firefox中的Firebug,Chrome中的开发工具)。您可以直接在控制台中键入JavaScript并立即对其进行评估,而无需实际编辑/保存/重新加载页面。谢谢,我修复了输入错误,但它不在实际源代码中。仍然不工作。这里的新代码:完成,不工作。我不明白为什么。此外,您可以快速测试JavaScript的一些操作也已打开开发者控制台(Firefox中的Firebug,Chrome中的Dev Tools)。您可以直接在控制台中键入JavaScript并立即对其进行评估,而无需实际编辑/保存/重新加载页面。感谢所有人,找到了它。感谢所有人,找到了它。