如何在HTML中传递参数“this”

时间:2018-06-09 16:39:15

标签: javascript html

有没有办法可以在HTML中传递参数值“this”,其中“this”指的是它加载的对象。例如:

<div onload="floatIn(this)">
    <p>test</p>
</div>

function= floatIn(element){//}哪里元素应该是div?

2 个答案:

答案 0 :(得分:0)

this变量唯一特别之处在于它是如何定义的。

在调用函数时,可以像传递其他变量一样传递其值。

您的问题是,div元素没有load事件,因为它不会加载任何内容,因此您的事件处理程序永远不会触发(并且您的HTML是无效的)。

答案 1 :(得分:0)

“onload”事件是指需要获取其内容的元素,例如图片;因此,div元素不会触发事件。 如果要在div渲染后触发脚本,则必须在HTML中提及div之后运行:

<script>
  function floatIn(div) {
    console.log(div);
  }
</script>


<div id="mydiv">
  <p>test</p>
</div>
<script>
  var div = document.getElementById('mydiv');
  floatIn(div);
</script>

但是如果div中有图像,则在渲染div之后但在图像加载之前会触发以这种方式定义的回调。要处理这种情况,您必须收听图片“加载”事件(例如,请参阅this jQuery library)。

更新:如果您想要并有权附加脚本,则可以创建自己的回调属性:

<div id="div1" onrender="this.textContent = this.id"></div>
<div id="div2" onrender="this.textContent = this.id"></div>

<!-- ...and the end of the document -->
<script>
  document.querySelectorAll('[onrender]').forEach(function (elem) {
    var func = new Function(elem.getAttribute('onrender'));
    func.call(elem);
  });
</script>