jQuery文档和CSS选择器文档为您提供了非常强大的工具来查找页面中的相关元素。
我有这个HTML代码。
<input type=".." checked="checked" /><label>text</label> text *
<input type=".." checked="checked" /><label>text</label> text
....
我想如果是在一个传说之后:"*"结果会是:
<div class="star"><input type=".." checked="checked"><label>text</label> text *</div>
<input type=".." checked="checked" /><label>text</label> text
...
不幸的是,我不知道如何获得*。以及如何包装<div>
一旦找到了相关的元素,就可以创建一个div
并将它们移动到其中,方法是在第一个元素前面插入div,然后在上面使用append
将其他元素移动到其中。
示例:在div.star
:中,用label
立即包裹第一个input
// Select the first input with a legend after it
var elements = $("input + label").first().prev();
// Create the div
var div = $('<div class="star"></div>');
// Insert the div in front of the input
div.insertBefore(elements);
// Move the input and the label into the div
div.append(elements.add(elements.next()));
实时复制
我不提供任何指导,但提供以下代码和小提琴:http://jsfiddle.net/dYyNC/
html:
<input type="checkbox" checked="checked" /><legend>text</legend> text *
<input type="checkbox" checked="checked" /><legend>text</legend> text
js:
var star_inputs = $('input').filter(function() {
return /*s/g.test($(this).next()[0].nextSibling.nodeValue);
});
star_inputs.wrap("<div class='star'></div>");
css:
.star {
border: 1px solid red;
}