我有一个<div id="rptViewer">
,它有多个div和表,而这些表又有多个div和表。
我需要一个jQuery选择器来直接或间接地选择“rptViewer”下的所有div或表(嵌套)。
我正在尝试以下jQuery选择器。
<script type="text/javascript">
$(document).ready(function() {
$("[id*='rptViewer'] table").each(function(i, item) {
$(item).css('display', 'inline-block');
});
$("[id*='rptViewer'] div").each(function(i, item) {
$(item).css('display', 'inline-block');
});
$("[id*=rptViewer] table").attr("width","");
});
</script>
但是当我使用firebug进行检查时,我发现只有'rptViewer'的直接子项才会获得'inline-block'CSS
答案 0 :(得分:4)
如果您想在rptViewer中包含所有table和div的类。 你可以这样做:
$("table, div", "#rptViewer").addClass('someStyle');
但是如果你想只为rptViewer的真正孩子提供一个类。 你可以这样做:
$("#rptViewer > table, #rptViewer > div").addClass('someStyle');
答案 1 :(得分:1)
不是在JavaScript中添加样式,而是通过CSS添加样式:
#rptViewer div,
#rptViewer table {
display: inline-block;
}
您可以使用[id]
选择器和逗号分隔的选择列表:
$('#rptViewer div, #rptViewer table')...
如果您想要选择更多元素,则可能需要使用.find()
:
$('#rptViewer').find('div, table')...
鉴于您使用rptViewer
作为[id]
,我将假设您正在使用ASP.NET,在这种情况下,您应该为元素添加一个类以简化选择:
$('.viewer').find('div, table')...