我最近发现的一件事是我可以使用headers
上的td
属性和任何相关的axis
属性的组合将表格单元设置为具有多个轴th
。例如:
<table>
<caption>Country Toy Codes</caption>
<thead>
<tr>
<th scope="col row"></th>
<th scope="col" id="us" axis="country">US</th>
<th scope="col" id="ca" axis="country">CA</th>
<th scope="col" id="uk" axis="country">UK</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" id="robots" axis="toys">Robots</th>
<td headers="us robots">ABC</td>
<td headers="ca robots">DEF</td>
<td headers="uk robots">GHI</td>
</tr>
<tr>
<th scope="row" id="dolls" axis="toys">Dolls</th>
<td headers="us dolls">JKL</td>
<td headers="ca dolls">MNO</td>
<td headers="uk dolls">PQR</td>
</tr>
<tr>
<th scope="row" id="slinkys" axis="toys">Slinkys</th>
<td headers="us slinkys">STU</td>
<td headers="ca slinkys">VWX</td>
<td headers="uk slinkys">YZ1</td>
</tr>
<tr>
<th scope="row" id="legos" axis="toys">Legos</th>
<td headers="us legos">AB1</td>
<td headers="ca legos">CD1</td>
<td headers="uk legos">EF1</td>
</tr>
</tbody>
</table>
这对非视觉浏览器有明显的好处,但我认为它对javascript和css也很有用。唯一的问题是,在选择或选择之后,我没有看到直接访问单元格标题id的轴类型的方法。
理想情况下,我想执行以下任一操作(提前粗略的pseduo代码):
Selector:
td['axis=toys'] // Would select all td's with a header id that resolves to a header having axis value "toys"
Getter:
$('td').axisValue("toys") // would return the value, if applicable, of header id of header value with axis value of toys.
对于getter,我可以每次循环遍历每个头,并从DOM中的id中找到元素,然后是轴值,但是如果有更直接的方法可以做到这一点,我相信它也更多由浏览器优化。
对于选择器,我能想到的最接近的(在js中)是获取给定的轴值,使用该轴值找到所有id,然后用逗号分隔每个选项以全部抓取它们,例如
[headers~=us], [headers~=ca], [headers~=uk]
是否有人知道标头ID的轴名是通过方法还是直接在td
元素上可用?