我必须在目前可见的“para”类中找到 div。我试过:
$('.para div[style="display: block;"]').attr("id")
但它不起作用。
我还在 js fiddle 上写了一个例子 --> http://jsfiddle.net/JZFgp/3/
我很感谢任何提示和解决方案。
马里奥
我必须在目前可见的“para”类中找到 div。我试过:
$('.para div[style="display: block;"]').attr("id")
但它不起作用。
我还在 js fiddle 上写了一个例子 --> http://jsfiddle.net/JZFgp/3/
我很感谢任何提示和解决方案。
马里奥
这样可以正常工作,但是您的标记在小提琴中无效。这是一个固定版本:
<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
andtr
元素,浏览器会尽力解释您的标记并最终只删除td
(至少在 Chrome 中),这意味着.para
您的选择器部分不再匹配。
编辑
看起来 Chrome(很可能还有其他人,但我还没有测试过)很高兴你省略该tr
元素,只要有一个table
元素。它会自动在您的元素周围添加一个tbody
和。tr
td
$('.para div:visible').attr("id")
应该管用。
您不能在选择器中可靠地使用样式属性。一些浏览器会保持属性值不变,而另一些浏览器会将值标准化。
例如,在 IE8 中,读取属性值会给您"display: block"
而不是"display: block;"
,但您不能使用带有[style="display: block"]
(or [style="display: block;"]
) 的选择器来查找元素。