3

我有以下<\option>由 Lotus Domino 生成的 HTML 代码(注意没有结束标签)。

<select name="Fault" class="textbox">
<option>Single Light Out
<option>Light Dim
<option>Light On In Daytime
<option>Erratic Operating Times
<option>Flashing/Flickering
<option>Causing Tv/Radio Interference
<option>Obscured By Hedge/Tree Branches
<option>Bracket Arm Needs Realigning
<option>Shade/Cover Missing
<option>Column In Poor Condition
<option>Several Lights Out (please state how many)
<option>Column Leaning
<option>Door Missing/Wires Exposed
<option>Column Knocked Down/Traffic Accident
<option>Lantern Or Bracket Broken Off/Hanging On Wires
<option>Shade/Cover Hanging Open
<option>Other
</select>

使用 Jquery,一旦文档加载到此,我想转换此 HTML:- 在第 11 个选项之后添加一个 optgroup 并添加结束</option>标记

<select name="Fault" class="textbox">
<option>Single Light Out</option>
<option>Light Dim</option>
<option>Light On In Daytime</option>
<option>Erratic Operating Times</option>
<option>Flashing/Flickering</option>
<option>Causing Tv/Radio Interference</option>
<option>Obscured By Hedge/Tree Branches</option>
<option>Bracket Arm Needs Realigning</option>
<option>Shade/Cover Missing</option>
<option>Column In Poor Condition</option>
<option>Several Lights Out (please state how many)</option>
    <optgroup label="Urgent Reasons">
<option>Column Leaning</option>
<option>Door Missing/Wires Exposed</option>
<option>Column Knocked Down/Traffic Accident</option>
<option>Lantern Or Bracket Broken Off/Hanging On Wires</option>
<option>Shade/Cover Hanging Open</option>
<option>Other</option>
    </optgroup>
</select>
4

2 回答 2

3

:nth-child(n+7)选择所有大于索引 7 的孩子。

$('option:nth-child(n+7)').wrapAll('<optgroup  label="Urgent Reasons">');

JsFiddle

非关闭<option>是无效的 HTML,所以我不确定 jQuery 是如何处理这个的,因为它只是进行有效的 DOM 操作。我建议您在解析 HTML 之前修复此非结束标记。

于 2012-04-04T09:31:12.443 回答
2

要修复选项标签,如果您可以将 HTML 代码读入允许您运行替换的字符串。类似的东西(这是一个 javascript 示例,因为我们正在谈论 jQuery)

raw_code.replace(/(<option>.+)/g, "$1</option>\n");
于 2012-04-04T09:50:28.587 回答