我有以下情况:
表单在类“formFieldLabel”中具有系统生成的字段(这是使用 from 生成器生成的表单)。这对屏幕阅读器不友好,因为它不使用标签标签,我的目标是基本主题化并使该系统生成的表单更易于访问。所以,我对这个脚本的尝试是......
1) 遍历表单,将 .formFieldLabel 内容复制到数组“labelArray”中
2)在此之后,将适当的数组值粘贴到输入标签旁边的标签标签内
3)最后,删除 .formFielLabel 类,这还没有完成,但我可以轻松完成这部分
// HTML example for one part of the multiple fields
<div class="formField">
<table>
<tr>
<td class="formFieldLabel" >First Name<b style="color: #FF0000; cursor: default" title="Required Field">*</b></td>
<td class="formFieldLabel" style="padding-left: 5px">Last Name<b style="color: #FF0000; cursor: default" title="Required Field">*</b></td>
</tr>
<tr>
<td ><input type="text" class="l6e formFieldText formFieldMediumLeft" id="form_0004_fld_2_fn" name="First Name" value=""></td>
<td style="padding-left: 5px"><input type="text" class="l6e formFieldText formFieldMediumRight" id="form_0004_fld_2_ln" name="Last Name" value=""></td>
</tr>
<tr><td> </td></tr>
<tr>
<td class="formFieldLabel">Email Address<b style="color: #FF0000; cursor: default" title="Required Field">*</b></td>
</tr>
<tr>
<td colspan="2"><input type="Email" class="l6e formFieldText formFieldLarge" id="form_0004_fld_2_em" name="E-mail" value=""></td>
</tr>
</table>
</div>
这是我到目前为止执行此操作的脚本。问题是它为每个输入运行整个循环,因此在每个输入旁边它显示 FirstNameLastNameEmail 等等。我觉得我在概念上在这里走错了方向。
// jQuery
var label = $(".formFieldLabel");
var labelArray = [];
for(var i=0;i < label.length; i++) {
var arrValue = label[i].innerHTML;
labelArray.push(arrValue);
insertLabel = $("<label>").append(labelArray[i]).append("</label>");
$(".formFieldText").before(insertLabel);
};
JSFiddle:http: //jsfiddle.net/qGgwT/
有人可以在这里指出我正确的方向吗?