元素之后的jquery文本if

时间:2014-04-09 21:08:48

标签: javascript jquery html

我有这个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
...

不幸的是,我不知道如何获得*。以及如何包装&lt; div&gt;

2 个答案:

答案 0 :(得分:1)

jQuery documentationCSS selectors documentation为您提供了非常强大的工具,可用于查找网页中的相关元素。

找到相关元素后,您可以创建一个div并通过在第一个前面插入div然后在其上使用append移动其他元素来将其移动到其中进入它。

示例:在input中随后将第一个labeldiv.star 包裹起来

// 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()));

Live Copy

答案 1 :(得分:1)

我没有提供任何指导,但这段代码和小提琴: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;
}