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