函数hide()、prev()、show()被组装以获得所需的结果,但无法理解其工作原理
Function hide() , prev() , show() are assembled to get required result but unable to understand its working?
我有一个运行良好的脚本。脚本是:
var minimized_elements = $('.innovision-msg');
var minimize_character_count = 100;
minimized_elements.each(function(){
var t = $(this).text();
if(t.length < minimize_character_count ) return;
$(this).html(
t.slice(0,minimize_character_count)+
'<span>...</span>'+'<a href="#" class="read_more" style="color:#1a51c6;">Read more</a>'+
'<span style="display:none;">'+ t.slice(minimize_character_count ,t.length)+ '<span>...</span>' +
'<a href="#" class="read_less" style="color:#1a51c6;">Read less</a></span>'
);
});
$('a.read_more', minimized_elements).click(function(event){
event.preventDefault();
$(this).hide().prev().hide();
$(this).next().show();
});
$('a.read_less', minimized_elements).click(function(event){
event.preventDefault();
$(this).parent().hide().prev().show().prev().show();
});
在这个脚本中,我无法理解代码的含义和用法:
$(this).parent().hide().prev().show().prev().show();
有人能解释这行代码的含义吗?
此外,当它设置var minimize_character_count=250时;脚本不起作用。
$(this).parent().hide().prev().show().prev().show();
该行隐藏被单击的this
元素中的parent
元素(用于最小化)。隐藏父元素后,它转到(parent
元素的)previous sibling
并使其成为visible
。它再次转到previous sibling
(父元素的上一个同级元素)并使其可见。
基本上,jquery方法(在完成它们的工作后,无论是隐藏、显示还是遍历)都会返回对当前元素的引用,从而允许您以这种方式链接方法。
这基本上是chaining
,它在返回的对象上工作
$(this).parent().hide().prev().show().prev().show();
$(this)
指'a.read_less', minimized_elements
单击此元素,它将找到parent
dom,并将其hide
。
.prev()
用于选择前一个元素。因此,它将选择上一个元素并显示它。再次使用prev()
将选择前一个到前一个元素,并显示
方法链接是jQuery的一个不错的特性。大多数方法将返回调用它的对象,所以您可以调用同一链中的其他方法。
jQuery的另一个非常酷的方面是大多数方法返回一个jQuery对象,然后可以使用该对象调用另一个方法。这允许您执行命令链接可以对同一组元素执行多个方法,即真的很好,因为它省去了你和浏览器的查找相同的元素不止一次来源
相关文章:
- 函数hide()、prev()、show()被组装以获得所需的结果,但无法理解其工作原理
- 无法从IE中的data.responseText获取结果,但在其他浏览器中工作
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- Javascript 不工作,结果打印后浏览器仍在加载
- 当我在Javascript中的.exec()结果上使用.index时,它是如何工作的
- 序列化方向结果到 JSON 发送到我的网络服务无法正常工作
- 异步功能在预期结果时停止工作
- 通过输入键(不起作用)或搜索按钮(工作)查询结果
- 如果我有两个选项的代码,单选按钮的结果将无法正常工作
- 谷歌博主的编号页面导航无法在搜索结果页上工作
- jquery插件 - 工作,但在调试时,结果甚至在到达该行之前就显示出来了
- 将结果从.html(或innerHtml)输入到inArray并使其工作
- I'我试图让jquery在我的chrome扩展的background.js中工作,结果成功了;不起作用.为什么?
- 2个SQL查询.两者独立工作.当我把它们放在一起时,第一个查询的结果变量是空的.为什么?
- Meteor findOne查询在一个模板助手中返回未定义的结果.在其他模板助手中,同样的查询也能很好地工作
- 显示返回结果计数的函数是'没有按预期工作
- .find("tagname")空结果(偶尔在Chrome中工作)
- 调用ASP中控制器的ActionMethod.. NET MVC从Javascript,结果在Excel工作表保存
- 数据显示更新数据结果,但更新数据结果是不工作的PHP
- PHP正则表达式不工作,返回主题字符串而不是正则表达式结果