当前位置: 首页 > 知识库问答 >
问题:

innerText、innerHTML和Value之间的区别?

施文彬
2023-03-14

JavaScript中的innerHTMLinnertextvalue有什么区别?

共有2个答案

吴升
2023-03-14

下面的示例引用了以下HTML代码段:

<div id="test">
   Warning: This element contains <code>code</code> and <strong>strong language</strong>.
</div>

该节点将被以下JavaScript引用:

var x = document.getElementById('test');

设置或获取描述元素的后代的HTML语法

x.innerHTML
// => "
// =>   Warning: This element contains <code>code</code> and <strong>strong language</strong>.
// => "

这是W3C的DOM解析和序列化规范的一部分。注意,它是element对象的属性。

设置或获取对象的开始标记和结束标记之间的文本

x.innerText
// => "Warning: This element contains code and strong language."
  • innertext是由Microsoft引入的,Firefox有一段时间不支持它。2016年8月,innertext被WHATWG采用,并在V45中添加到Firefox中。
  • innertext为您提供了一种样式感知的文本表示形式,它试图与浏览器呈现的内容匹配,这意味着:
    • innertext应用文本转换空白规则
    • innertext修剪行之间的空白并在项之间添加换行符
    • innertext不会返回不可见项的文本


    获取或设置节点及其后代的文本内容。

    x.textContent
    // => "
    // =>   Warning: This element contains code and strong language.
    // => "
    

    虽然这是W3C标准,但IE<9不支持它。

    • 不知道样式,因此将返回CSS隐藏的内容
    • 不会触发回流(因此性能更好)
    • 节点元素的
    • 属性


    这取决于您所针对的元素。对于上面的示例,x返回一个HTMLDivElement对象,该对象没有定义value属性。

    x.value // => null
    

    例如,输入标记()确实定义了value属性,该属性引用“控件中的当前值”。

    <input id="example-input" type="text" value="default" />
    <script>
      document.getElementById('example-input').value //=> "default"
      // User changes input to "something"
      document.getElementById('example-input').value //=> "something"
    </script>
    

    从文档中:

    注意:对于某些输入类型,返回的值可能与用户输入的值不匹配。例如,如果用户在中输入非数值,则返回的值可能是空字符串。


    下面是一个示例,它显示了上面给出的HTML的输出:

    null

    var properties = ['innerHTML', 'innerText', 'textContent', 'value'];
    
    // Writes to textarea#output and console
    function log(obj) {
      console.log(obj);
      var currValue = document.getElementById('output').value;
      document.getElementById('output').value = (currValue ? currValue + '\n' : '') + obj; 
    }
    
    // Logs property as [propName]value[/propertyName]
    function logProperty(obj, property) {
      var value = obj[property];
      log('[' + property + ']'  +  value + '[/' + property + ']');
    }
    
    // Main
    log('=============== ' + properties.join(' ') + ' ===============');
    for (var i = 0; i < properties.length; i++) {
      logProperty(document.getElementById('test'), properties[i]);
    }
    <div id="test">
      Warning: This element contains <code>code</code> and <strong>strong language</strong>.
    </div>
    <textarea id="output" rows="12" cols="80" style="font-family: monospace;"></textarea>

江曦
2023-03-14

innertext不同,innerhtml允许您使用HTML格式文本,而不自动编码和解码文本。换句话说,innertext检索并设置标记的内容为纯文本,而innerhtml检索并设置HTML格式的内容。

 类似资料:
  • 问题内容: 是什么区别,并且在JavaScript? 问题答案: 但是,与不同,它使您可以处理HTML富文本格式,并且不会自动对文本进行编码和解码。换句话说,以纯文本的形式检索和设置标签的内容,而以HTML格式检索和设置标签的内容。

  • 有人能指出两者之间的区别吗?当某人应该在上使用'.get_attribute("innerhtml“)‘时?

  • 问题内容: 我有一个由Javascript填充的下拉列表。 在决定应该在加载时显示的默认值时,我意识到以下属性显示的值完全相同: 我自己的研究显示基准测试或其中一些(但不是全部)之间的比较。 我可以使用自己的常识并选择1或其他,因为它们提供相同的结果,但是,我担心如果数据发生更改,这将不是一个好主意。 我的发现是: 将按原样显示该值,并忽略可能包含的任何HTML格式 将显示值并应用任何HTML格式

  • 问题内容: 我想做一些域验证 在我的对象中,我有一个整数, 现在我的问题是我是否写 和 如果是整数,则哪一个适合域验证。 有人可以解释一下两者之间的区别吗? 谢谢。 问题答案: 和用于验证数字字段,其可以被(代表数字), ,, 等和它们各自的原始包装。 用于检查字段的长度约束。 按照文档的支持,,和而和支持原语及其包装。请参阅文档。

  • 本文向大家介绍innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解,包括了innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解的使用技巧和注意事项,需要的朋友参考一下 innerHTML属性用来读取或设置某个节点内的HTML代码。 outerHTML属性用来读取或设置HTML代码时,会把节点

  • 问题内容: 以下三个字段的有效性检查之间有什么区别? 我读到第一个与DDL有关。第二个是用于bean验证的。第三是用于hibernate验证。 那是对的吗?我仍然不明白的是:我什么时候必须使用哪个?这些注释之一何时触发? 编辑:考虑以下情况:考虑到需要开发一个长度为string类型的字段(长度为13)的实体,您会选择上述哪种方法?甚至更好:您必须问自己哪些问题才能找出适合您目的的一个? 问题答案: