最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 知道这两个 DOM 属性区别的,头发应该不多了吧?

    正文概述 掘金(KaysonLi)   2021-02-25   402

    你可能知道,获取和设置 DOM 元素内部文本可以用这两个属性:Node.textContent 和 Element.innerText

    乍一看,它们似乎做着完全相同的事情,但它们之间有一些微妙但重要的区别。今天,我们来看看它们的作用,以及它们的异同之处。

    废话不说,直接看代码。

    相同之处

    比如下面这个 DOM 元素。

    <p id="sandwich">I love a good tuna sandwich!</p>
    

    Node.textContent 和Element.innerText属性都能获取#sandwich 元素内部的文本。

    let sandwich = document.querySelector('#sandwich');
    
    // returns "I love a good tuna sandwich!"
    let text1 = sandwich.textContent;
    
    // also returns "I love a good tuna sandwich!"
    let text2 = sandwich.innerText;
    
    

    如果元素内部还有其他标签,它们都会忽略。

    <p id="sandwich">I love a good <strong>tuna</strong> sandwich!</p>
    
    // returns "I love a good tuna sandwich!"
    let textHTML1 = sandwich.textContent;
    
    // also returns "I love a good tuna sandwich!"
    let textHTML2 = sandwich.innerText;
    
    

    另外,这两个属性都能用于设置元素内部文本。

    // 替换文本
    // <p id="sandwich">Hello, world!</p>
    sandwich.textContent = 'Hello, world!';
    
    // 也可以追加
    // <p id="sandwich">Hello, world! And hi, Universe!</p>
    sandwich.innerText += ' And hi, Universe!';
    
    

    不同之处

    看上去做着同样的事情,那么它们有什么区别?

    • Node.textContent 属性获取全部文本内容,包括元素内部那些未渲染到页面的内容。
    •  Element.innerText 只返回渲染出来的文本,类似于可以用光标和键盘选中的文本部分。

    举个例子就清楚了。

    <div class="greeting">
    	<style type="text/css">
    		p {
    			color: rebeccapurple;
    		}
    	</style>
    	<p hidden>This is not rendered.</p>
    	<p>Hello world!</p>
    </div>
    
    let greeting = document.querySelector('.greeting');
    
    /* 返回 
    p {color: rebeccapurple;} 
    This is not rendered. 
    Hello world!
    */
    let text1 = greeting.textContent;
    
    // 返回 "Hello world!"
    let text2 = greeting.innerText;
    
    

    这下总算知道区别了!又躺学了一个知识点~

    关注公众号 1024译站,每天一个掉发小技巧~


    起源地下载网 » 知道这两个 DOM 属性区别的,头发应该不多了吧?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元