使用jQuery find().show()来显示子项
Use jQuery find().show() to show child item
我正在尝试使用jQuery Find来重新显示隐藏的单词。
当我点击Div1
单词时,它们将被附加到Div2
并从Div1
中隐藏。
当我点击Div2
单词时,它们将被删除并在Div1
中重新显示。
唯一不起作用的是Div1
中再次出现的单词。
我该怎么解决这个问题?
我已经尝试使用find()
来传递被单击的元素。Find表示它接受一个元素,这就是我传递给它的结果:.find( element )
$('#Div1').on('click', 'li', function () {
$('#Div2').append('<span>' + $(this).html() + '</span>');
$(this).hide();
});
$('#Div2').on('click', 'span', function (e) {
console.log($(this)); // [span, context: span]
$('#Div1').find($(this)).show();
$(this).remove();
});
在Div2
中,我在控制台中记录元素,它显示:
console.log($(this)); // [span, context: span]
在Div2
中,不能使用span
选择器从第一个div
中查找元素。您可以使用:contains()
选择器从Div1
中选择该元素(如果Div1
有多个内容相同的li
,则会失败)
$('#Div1').on('click', 'li', function() {
$('#Div2').append('<span>' + $(this).html() + '</span>');
$(this).hide();
});
$('#Div2').on('click', 'span', function(e) {
var text = this.innerText;
$('#Div1 :contains(' + text + ')').show();
$(this).remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="Div1">
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
</div>
<div id="Div2"></div>
Fiddle here
感谢adeneo,想出了这个:
$('#Div1').on('click', 'li', function () {
$('#Div2').append('<span data-id="' + $(this).data('id') + '">' + $(this).html() + '</span>');
$(this).hide();
});
$('#Div2').on('click', 'span', function (e) {
$('#Div1').find('[data-id="' + $(this).data('id') +'"]').show();
$(this).remove();
});
行:
$('#Div1').find($(this)).show();
正在#Div1
中查找实际单击的元素(它不会在其中,因为它是#Div2
单击),而不是包含与其相同文本的元素。
更改为:
$('#Div1').find(':contains('+$(this).text()+')').show();
相关文章:
- 使用angularjs ng Show/ng hide显示和隐藏不同的内容
- ng show显示所有项目
- 使用ng Show显示/隐藏按钮
- AngularJS ng-click不显示ng-show消息
- jQuery:使用 show() 显示父节点的一些节点
- 在 $().show() 之后显示引导工具提示
- jquery show() 元素与列表项相关 - 不显示任何内容
- jquery“show”效果显示错误的元素
- 为什么ng-show,ng-message总是显示
- ng-show 和 ng-if 无法显示内容
- IE:jQuery.show() 仅在显示之前/之后使用 alert() 时显示元素
- AngularJS:字体真棒喜欢按钮未显示在ng-show下
- AngularJS - ng-show 在对象加载时显示内容
- 使用 jQuery 的 .show() 显示内容时遇到问题
- 如何从顶部显示下拉菜单到 use.show()
- 使用jQuery find().show()来显示子项
- 是否可以使用show/hide javascript来显示具有相同onclick命令的2个元素
- 升级simple-show/hide jQuery:显示第一个内容+粗体导航项
- angular ng show即使设置为true也会显示内容
- angular ng show不显示数据