将元素内的文本移动到其子元素

时间:2016-02-02 11:12:09

标签: jquery

我想将label内的文字片段移到a元素内。我不是一个jQuery向导,当我无法定位文本样本时,我不明白如何使用appendToinsertBefore等。除了移动文本之外,我想保持HTML完整。

<div class="column">
    <div class="cart">
        <div class="filter">
            <label>
                <a></a>
                textsample
            </label>
        </div>
        <div class="filter">
            <label>
                <a></a>
                textsample
            </label>
        </div>          
    </div>

4 个答案:

答案 0 :(得分:0)

你可能会这样做。

var getTextNodesIn = function(el) {
    return $(el).contents().filter(function() {
        return this.nodeType == 3;
    });
};

$(".filter label").each(function() {
    // retrieves the text content from the `<label>`

    var theText=$(this).text();
    // find the text content and remove it
    getTextNodesIn(this).remove();

    // add the text content back to the `<a>` tag
    $(this).find("a").html(theText);
});

答案 1 :(得分:0)

您可以迭代anchor元素并使用.append()移动文字。

&#13;
&#13;
$(".filter label a").each(function() {
  $(this).append(this.nextSibling); //Read the text node using plain JS property
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="column">
  <div class="xart">
    <div class="filter">
      <label>
        <a href="#"></a>textsample</label>
    </div>
    <div class="filter">
      <label>
        <a href="#"></a>textsample</label>
    </div>
  </div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

找到文本,然后替换标签的内容:

&#13;
&#13;
$('.filter label').each(function() {
  var text = $(this).text();
  $(this).html('<a>' + text + '</a>');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="column">
  <div class="xart">
    <div class="filter">
      <label>
        <a></a>
        textsample
      </label>
    </div>
    <div class="filter">
      <label>
        <a></a>
        textsample
      </label>
    </div>
  </div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

请在jQuery中查看此答案:

$(".filter label").each(function() {
   var Text=$(this).text();
   $(this).text("");
   $(this).append('<a>'+Text+'</a>');
});