0
一旦我有以下的情况:应用从循环动作来一系列元素,每个元素
甲形式具有内部的系统生成的字段与类“formFieldLabel”(这是用从发电机产生的形式) 。这不是屏幕阅读器友好的,因为它不使用标签标签,我的目标是基本主题,并使这个系统生成的表格更易于访问。所以,我的这个脚本尝试是...
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/
任何人都可以点我朝着正确的方向吗?
'$(” ”)'应该是'$(“
主要问题是'$(“.formFieldText”)'目标*所有*字段,而不仅仅是与每个标签相关的字段。你可以使用'$(label [i])。html(insertLabel);'而不是最后一行。此外,还有Arun P Johny建议的选项(非常优雅,但我不确定你会理解代码 - 我不推荐使用你不明白的代码)。 – bfavaretto