如何获取被 javascript 覆盖的文本的 innerHTML

Posted

技术标签:

【中文标题】如何获取被 javascript 覆盖的文本的 innerHTML【英文标题】:How can I get the innerHTML of a text that is overwritten with javascript 【发布时间】:2019-05-26 16:37:01 【问题描述】:

html

<div class="col answer">
    some text
</div>

js:

$(".answer").text("Here we change the text" );
$(".answer").click(function(E) 
    console.log(E).html();
  );

控制台输出:未定义

【问题讨论】:

console.log 返回undefined...你的意思是console.log($(this).html())吗? E指索引 console.log($(E.target).html()) 将记录 html。或console.log(E.target.innerHTML) 【参考方案1】:

您需要使用$(this).html() 而不是(E).html()。您的代码应如下所示:

console.log($(this).html());

演示:

$(".answer").text("Here we change the text");
$(".answer").click(function() 
  console.log($(this).html());
);
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<div class="col answer">
  some text
</div>

【讨论】:

【参考方案2】:

因为这也是在 javascript 中发布的,所以这里有一个普通的选项来做同样的事情:

<div class="col answer">
    some text
</div>

<script>

    var x = document.getElementsByClassName("answer");
    var y;
    for (y = 0; y < x.length; y++) 
      x[y].innerHTML = "Here we change the text";
     

    window.onload = function() 
        document.addEventListener('click', function (event) 
        	var target = event.target;
        	if(target.matches('.answer'))
          	console.log(target.innerHTML);
          
        , false);
    
</script>

【讨论】:

【参考方案3】:

您需要innerHTML 还是text??如果您需要文字,请使用.text() 方法。

$(".answer").text("Here we change the text" );
$(".answer").off().on('click',function() 
    console.log($(this).html());
);

【讨论】:

以上是关于如何获取被 javascript 覆盖的文本的 innerHTML的主要内容,如果未能解决你的问题,请参考以下文章

javascript 如何获取表单中所有文本框

如何在javascript中写入文本文件而不覆盖文本?

JavaScript-如何元素id获取页面元素对象

javascript中获取元素节点的文本

Javascript innerHTML 被自动覆盖并失效[重复]

如何获取 kindeditor文本框中的值