0

我必须在目前可见的“para”类中找到 div。我试过:

 $('.para div[style="display: block;"]').attr("id")

但它不起作用。

我还在 js fiddle 上写了一个例子 --> http://jsfiddle.net/JZFgp/3/

我很感谢任何提示和解决方案。

马里奥

4

3 回答 3

5

这样可以正常工作,但是您的标记在小提琴中无效。这是一个固定版本

<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>​

如果没有tableandtr元素,浏览器会尽力解释您的标记并最终只删除td(至少在 Chrome 中),这意味着.para您的选择器部分不再匹配。


编辑

看起来 Chrome(很可能还有其他人,但我还没有测试过)很高兴你省略该tr元素,只要有一个table元素。它会自动在您的元素周围添加一个tbody和。trtd

于 2012-10-23T09:32:55.953 回答
1

$('.para div:visible').attr("id")应该管用。

于 2012-10-23T09:31:01.753 回答
0

您不能在选择器中可靠地使用样式属性。一些浏览器会保持属性值不变,而另一些浏览器会将值标准化。

例如,在 IE8 中,读取属性值会给您"display: block"而不是"display: block;",但您不能使用带有[style="display: block"](or [style="display: block;"]) 的选择器来查找元素。

于 2012-10-23T09:47:04.543 回答