jQuery在1个元素中打开元素
jQuery open element in 1 element
这是一个非常简单的事情,但我不能得到它的工作。我正在做一个领导管理仪表板,用户可以看到他的领导。他首先只看到编号、名称和日期,当他单击名称时,需要显示另一个div来查看其他信息。
通常我可以使用.closest()
,但我认为,因为他们是在同一水平,不工作。所以我尝试了.siblings()
,但这甚至不起作用。
我做了一个jsfiddle: http://jsfiddle.net/zeSj3/
// Open en close leads
$("#dash_action #lead_list .lead_line a").click(function () {
event.preventDefault();
$(this).parent().find('.lead_info').fadeToggle();
});
使用.parents()
找到最近的共同父(.parents(".lead_line")
),然后从那里找到find()
。
$(this).parents(".lead_line").find('.lead_info').fadeToggle();
避免多次调用.parent()
。要理解它引用的是哪个元素并不容易,而且DOM结构的任何微小变化都会破坏您的脚本。
你应该使用。
$("#dash_action #lead_list .lead_line a").click(function () {
event.preventDefault();
$(this).parent().parent().find('.lead_info').fadeToggle();
});
它在上面两层,所以你应该调用parent()
两次。
// Open en close leads
$("#dash_action #lead_list .lead_line a").click(function () {
event.preventDefault();
$(this).parent().parent().find('.lead_info').fadeToggle();
});
链接到JSFiddle.
你可以这样做:
// Open en close leads
$(".lead_line a").click(function (event) {
event.preventDefault();
$(this).parent().closest('.lead_line').find('.lead_info').fadeToggle();
});
但正如其中一个答案所提到的,.parents()
可能是一个更好的解决方案。
相关文章:
- 可以't附加html元素jquery
- 循环遍历元素jquery选择器
- 在ajax加载的元素jquery上包含现有的jquery函数
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 获取单击的类元素 jQuery 的名称值
- 获取上一个元素 jQuery 的内容
- 根据另一个元素的更改获取一个元素(jquery)
- 区分不同的可拖放元素(jQuery 拖放)
- 除了最后一个<td>元素-Jquery
- 获取子元素jQuery的单选按钮值
- 捕获元素jquery外部的mousedown事件
- .append到非DOM元素jQuery
- 获取其父元素的精确子元素.Jquery
- 获取重复结构中的特定元素jquery
- 捕获隐藏输入元素jQuery的值
- 使用onclick函数获取点击的元素jquery
- 返回父元素 jquery 中的输入值
- 按属性查找元素 jQuery
- 选择元素 jQuery
- 按子元素 - jQuery 的数据 ID 对 li 进行排序