当jquery的css更改将在浏览器中显示?

时间:2012-01-20 22:56:10

标签: jquery css

我的javascript在firebug上运行如下:

 tr=$(this).parent('tr');
 tr.find('.img-delete').css('display','block');

但我看不到浏览器的变化。我有什么办法可以让它出现吗?

更新

首先,我不知道(或记住)它应该在更改后立即显示。我在厚箱上有UI项目,我能够捕获窗口中项目的事件并相应地更改了css。但它没有表现出来。所以我的问题就是。

3 个答案:

答案 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仅引用了直接父级,而我建议的两种方法不止一级。