如何使用jQuery切换两个跨度?

时间:2013-03-20 14:08:30

标签: jquery html

我有一个由我无法访问的php脚本生成的11个dt。示例如下。

<dt>
<span class="Required FormFieldRequired" style="visibility: visible">*</span> 
    <span class="FormFieldLabel">Email Address:</span>
</dt>

我需要所需的范围及其所有内容跟随 FormFieldLabel范围。 必需的范围文本永远不会更改,标签内容会发生变化。

$('span.FormFieldLabel').insertBefore( 'span.Required.FormFieldRequired' );不起作用,它会重复所有内容并弄乱表格。

阅读建议使用text()函数,但不建议我如何应用它。

我基本上想要将'A之前的B'变成'A之前的B'。

4 个答案:

答案 0 :(得分:3)

我假设你有多个dt你想要这样做。所以你需要这样做:

$('span.FormFieldLabel').each(function() {
    $(this).insertBefore( $(this).closest('dt').find('span.Required.FormFieldRequired') );
});

答案 1 :(得分:1)

这个怎么样:

$('span.FormFieldLabel').each(function() {
  $(this).insertBefore($(this).prev());
});

Demo

答案 2 :(得分:0)

这能满足您的需求吗?

$('.Required').remove().insertAfter('.FormFieldLabel')

实例:http://jsfiddle.net/V6HQb/

答案 3 :(得分:0)

var html = '<span class="Required FormFieldRequired" style="visibility: visible">*      </span>';
$("Required").remove();
$(dt).append(html);