jQuery.html()方法函数文字参数
jQuery .html() method function literal argument
为什么下面的两个语句不能完成相同的事情?
$('li.list1').html(function() {
return '<em>' + $(this).text() + '</em>';
});
和:
$('li.list1').html('<em>' + $(this).text() + '</em>');
根据文档,.html()
回调用于替换所选元素的内容时,会在替换之前清空它。
如果在回调中使用function
,则返回两个参数:元素的index
及其当前内容(清空之前)。
所以,你可以这样做:
$('li.list1').html(function (index, oldHtml) {
return '<em>' + oldHtml+ '</em>';
});
演示
jQuery.html(函数)
$(function () {
$('li.list1').html(function (index, data) {
return '<em>' + data + '</em>';
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="list1">Text</li>
</ul>
这种方式不起作用:$('li.list1').html('<em>' + $(this).text() + '</em>');
这里的$(this)
指的是jQuery对象Window
,除非它在某种包装器中,比如事件处理程序:
$('li.list1').on('click', function () {
$(this).html('<em>' + $(this).text() + '</em>');
});
Demo
$(function () {
$('li.list1').on('click', function () {
$(this).html('<em>' + $(this).text() + '</em>');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="list1">Text</li>
</ul>
相关文章:
- 如何在只接受字符串值/文字的HTML属性中调用函数
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- Javascript 函数文字
- 使用窗口对象练习我的对象文字函数
- 我需要一些帮助来理解JavaScript中的对象文字函数
- Javascript RegExp 与构造函数和文字不同的结果
- 在对象文字上调用函数,由字符串 - JavaScript 表示
- 自执行函数作为对象文字的属性
- 是否可以在 javascript 中的对象文字上定义函数属性
- 在 Javascript 中的对象文字中按名称(作为字符串)调用函数
- 将文字/对象/类传递给具有数千次调用的函数的内存含义
- 如何重现正确的JavaScript对象文字属性,该属性是CoffeeScript中的匿名函数
- Javascript:在对象文字函数中定义的事件侦听器使代码死亡
- 如何在同一文字中访问刚刚在文字中定义的函数
- 调用数字文字的成员函数
- 返回函数而非值的对象文字
- Javascript文字函数
- 如何在对象文字中向函数传递参数
- 如何在不位于javascript函数内部的情况下使用对象文字的属性
- jQuery.html()方法函数文字参数