Недавно я обнаружил, что я могу настроить ячейку таблицы на несколько осей, используя комбинацию свойства 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. Единственная проблема заключается в том, что я не вижу способа прямого доступа к типу оси идентификатора заголовка ячейки ни после выбора, ни для цели выбора.
В идеале я хотел бы сделать одно из следующего (грубый псевдо-код впереди):
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.
Что касается геттера, я мог бы проходить каждый заголовок каждый раз и находить элемент из id в DOM, а затем значение оси, но если есть способ сделать это более напрямую, я уверен, что это также более оптимизировано браузером.
Для селектора самое близкое, что я могу придумать (в js), это взять заданное значение оси, найти все идентификаторы, используя это значение оси, а затем разделить запятыми каждый параметр, чтобы получить их все, например
[headers~=us], [headers~=ca], [headers~=uk]
Кто-нибудь знает, доступно ли имя оси идентификатора заголовка через метод или непосредственно в элементе td
?