我要在“para”类中找到目前可见的div。 我试过了:
$('.para div[style="display: block;"]').attr("id")
但它不起作用。
我还在js小提琴上写了一个例子 - > http://jsfiddle.net/JZFgp/3/
我很感谢任何提示和解决方案。
马里奥
答案 0 :(得分:5)
这样可以正常工作,但你的标记在小提琴中是无效的。这是一个fixed version:
<table> <!-- You didn't have a `table` or `tr` element -->
<tr>
<td class="para">
<div id="TripSet" class="rounded-corner-region" style="display: none;">
<div id="DriverSet" class="rounded-corner-region" style="display: none;">
<div id="TimeSet" class="rounded-corner-region" style="display: block;">
<div id="Loading" class="borderless-region" style="display: none;">
</td>
</tr>
</table>
如果没有table
和tr
元素,浏览器会尽力解释您的标记,最后只删除td
(至少在Chrome中),这意味着{{ 1}}部分选择器无法再匹配。
修改强>
看起来Chrome(很可能是其他人,但我没有经过测试)很高兴您省略.para
元素,只要有tr
元素。它会自动在table
元素周围添加tbody
和tr
。
答案 1 :(得分:1)
$('.para div:visible').attr("id")
应该有用。
答案 2 :(得分:0)
您无法在选择器中可靠地使用style属性。有些浏览器会保持属性值不变,而其他浏览器会将值标准化。
例如,在IE8中,阅读属性值会为您提供"display: block"
而不是"display: block;"
,但您无法使用[style="display: block"]
(或[style="display: block;"]
)的选择器找到元素。