星辰炒饭

星辰炒饭 查看完整档案

杭州编辑  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑

你们的笑容,由我来守护

个人动态

星辰炒饭 赞了回答 · 2017-08-01

解决为什么选中的个数是0呢?

var items = document.getElementsByName("check");

关注 5 回答 5

星辰炒饭 赞了回答 · 2017-08-01

解决为什么选中的个数是0呢?

var items = document.getElementsByName("check");

关注 5 回答 5

星辰炒饭 提出了问题 · 2017-08-01

解决为什么选中的个数是0呢?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
    window.onload = function(){
        var btn = document.getElementById("btn");
        btn.onclick = function(){
            var arrays = new Array();
            var items = document.getElementsByTagName("check");
            for(i=0; i<items.length; i++) {
                if(items[i].checked){
                    arrays.push(items[i].value);
                }
            }
            alert("选中的个数:"+arrays.length)
        }
    }
</script>
</head>

<body>
<input type="checkbox" value="1" name="check" checked="checked" />
<input type="checkbox" value="2" name="check" />
<input type="checkbox" value="3" name="check" checked="checked" />
<input type="button" value="你选中的个数" id="btn" />
</body>
</html>

关注 5 回答 5

星辰炒饭 赞了回答 · 2017-08-01

解决为什么会出现空对象的?原因是什么?

代码执行顺序的问题。楼上正解。

关注 3 回答 2

星辰炒饭 赞了回答 · 2017-08-01

解决为什么会出现空对象的?原因是什么?

执行js的时候,还没有table,

window.onload = function() {
 var item=document.getElementById("tb");      
    var tbody=item.getElementsByTagName("tbody")[0] 
}

或者script放下面

<body>
    <div>
    </div>
    <script></script>
</body>        

关注 3 回答 2

星辰炒饭 提出了问题 · 2017-08-01

解决为什么会出现空对象的?原因是什么?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript"> 
    var item=document.getElementById("tb");      
    var tbody=item.getElementsByTagName("tbody")[0];//TypeError: null is not an object (evaluating 'item.getElementsByTagName')        
    var trs=tbody.getElementsByTagName("tr");
    for(var i=0; i<trs.length; i++){
        if(i%2==0){
            trs[i].style.backgroundColor="#888";
        }
    }
</script>
</head>

<body>
<table id="tb">
    <tbody>
        <tr><td>第一行</td><td>第一行</td></tr>
        <tr><td>第二行</td><td>第二行</td></tr>
        <tr><td>第三行</td><td>第三行</td></tr>
        <tr><td>第四行</td><td>第四行</td></tr>
        <tr><td>第五行</td><td>第五行</td></tr>
        <tr><td>第六行</td><td>第六行</td></tr>
    </tbody>
</table>
</body>
</html>

关注 3 回答 2

星辰炒饭 赞了回答 · 2017-06-18

解决为什么newtoy.constructor === Gadget在控制台的结果是false?

楼上正解,Gadget.prototype 被重写了。因为原型对象中有个隐式的constructor,指向了构造函数本身。如下:图片描述

原型拓展,最好写成这种形式:

Test.prototype.newFn = function() {
    ...
}

或者使用Object.assign()合并对象:

Test.prototype = Object.assign(Test.prototype, {
    newAttr: '',
    newFn: function() {
        ...
    }
})

关注 3 回答 2

星辰炒饭 赞了回答 · 2017-06-18

解决为什么newtoy.constructor === Gadget在控制台的结果是false?

如果代码没写错的话,那么就是false,因为你已经把Gadget的原型对象给重写了,而你重写的原型对象中没有constructor属性,可以参考一下《JavaScript高级程序设计》中第六章关于原型的介绍

关注 3 回答 2

星辰炒饭 提出了问题 · 2017-06-18

解决为什么newtoy.constructor === Gadget在控制台的结果是false?

function Gadget(name,color){
    this.name=name;
    this.color=color;
    this.whatAreYou=function(){
        return 'I am a ' + this.color + ' ' + this.name;
    };
}

Gadget.prototype={
    price:100,
    rating:3,
    getInfo:function(){
        return 'Rating: ' + this.rating + ', price: ' + this.price;
    }
};

var newtoy=new Gadget('webcam','black');
new.rating;//3
newtoy.constructor === Gadget;//true

上述例子摘自《面向对象编程指南》一书

关注 3 回答 2

星辰炒饭 赞了回答 · 2017-06-16

解决为什么getValue()得出的是123?

getValue()setValue()闭包, 共享一个变量 secret, 所以在setValue函数中更改了secret,getValue()读取secret当然会随之改变.

关注 2 回答 2

认证与成就

  • 获得 2 次点赞
  • 获得 48 枚徽章 获得 0 枚金徽章, 获得 7 枚银徽章, 获得 41 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2014-10-23
个人主页被 498 人浏览