我的javascript在firebug上运行如下:
tr=$(this).parent('tr');
tr.find('.img-delete').css('display','block');
但我看不到浏览器的变化。我有什么办法可以让它出现吗?
更新
首先,我不知道(或记住)它应该在更改后立即显示。我在厚箱上有UI项目,我能够捕获窗口中项目的事件并相应地更改了css。但它没有表现出来。所以我的问题就是。
答案 0 :(得分:2)
因为在这种情况下,您对表格单元格中的元素的事件做出了响应,我可以建议(与您的问题的评论相关):
$(this).closest('tr').find('.img-delete').show();
JS Fiddle demo/proof-of-concept
我已经从parent()
切换到closest()
,因为parent()
只查看直接的父,而不是在DOM上工作元素的祖先元素的树。由于input
的父级在有效的HTML中不是,也不能,tr
元素parent()
将返回null,undefined或false(或falsey)值,而不是一个可以解决的问题。
我建议closest()
而不是parents()
的原因是closest()
在匹配选择器的第一个元素处停止,因此返回单个元素,而parents()
继续向上运行元素祖先的DOM树,并返回数组中的多个元素。
由于您可能只想对一个元素采取行动,closest()
似乎更合适。
参考文献:
答案 1 :(得分:1)
你试过吗
$('tr').find('.img-delete').css('display','block');
可替换地,
tr.find('.img-delete').show();
如果它是块元素,这将设置为阻止。
当你在FireBug的控制台中输入$('tr')。find('。img-delete')时会发生什么?选择器返回的是什么?这有什么特点?这些是你应该看的东西。
另外,带有.img-delete类的元素的标记是什么?这是一个“阻止”类吗?我认为它是一个img标签,但事实并非如此。如果没有,请查看此页面以确定要使用的显示样式:http://www.w3schools.com/cssref/pr_class_display.asp
答案 2 :(得分:1)
尝试使用.closest
(我的偏好)或.parents
代替.parent
。原因是.parent
仅引用了直接父级,而我建议的两种方法不止一级。