【第7周 DOM 4-11 提示输入框】getElements是得到一个数组吗?.value是输入的字符串吗?

来源:4-10 编程练习

easyschen

2021-12-05 14:36:06

问题描述:

老师麻烦问下红框内的问题:

Q1:因为getElements 获取的是一个数组,如果不写[0],就无法得到子节点元素。

        span.getElementsByTagName('span')得到的只是<span></span>这两个标签?

        oSpan[0] = "您还可以输入"

        oSpan[1] = "<b>30</b>"

                      oB[0] = "30";

        oSpan[2] = "字"  

麻烦看下是这样的吗?


Q2:oText.value  就是输入框中的字符串

                 

麻烦老师看下上面两个问题是这样思考的吗?


相关截图:

https://img.mukewang.com/climg/61ac5c650973f8e409540086.jpg

https://img.mukewang.com/climg/61ac5b0f09efab8a09101000.jpg

相关代码:

<!DOCTYPE html>
<html>
    <head>
   <meta charset="UTF-8">
   <title>输入文本</title>
</head>
<body>
<p>字数限制在30字内,<span>您还可以输入<b>30</b> 字</span></p>
<textarea cols="50"  rows="7"  id="text"></textarea>
<script type="text/javascript">
//补充代码
var oText = document.getElementById('text');
var oSpan = document.getElementsByTagName("span")[0];
   var oB = document.getElementsByTagName('b')[0];
  
   var textL = 30;
   
oText.onkeyup = function(){
   //每次输入时候字符串的长度 
   var eachL = oText.value.length;
   //超出总长度的部分
                var leftL = textL - eachL;
            
                if(leftL>=0){
                    oSpan.innerHTML = "您还可以输入<b>"+leftL+"</b>字";
                }else{
                    oSpan.innerHTML = "已超出<b>"+(-leftL) +"</b>字";
                }
                
}

</script>
</body>
</html>


写回答

1回答

好帮手慕然然

2021-12-05

同学你好,解答如下:

1、不是的,document.getElementsByTagName('span'),得到的是HTML中所有的span标签,并以类数组的形式返回结果。如果HTML中有一个span标签,那么类数组中就有一个span标签,如果HTML中有两个span标签,那么类数组中就有两个span标签,如图

https://img.mukewang.com/climg/61ac629209802bb914060397.jpg

https://img.mukewang.com/climg/61ac62970971062214300412.jpg

2、.value用于获取输入框中用户输入的内容,也就是同学所说的输入框中的字符串,oText.value就是获取oText多行文本输入框中用户输入的内容。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程