我试图弄清楚如何在不克隆其元素的情况下克隆文本

时间:2017-06-29 09:54:03

标签: javascript jquery

我尝试做的是当我点击一个克隆到' b'标签

这是html:

 <ol>
    <li>y</li>
    <li>z</li>
    <li>x</li>
  </ol><b></b>

这是javascript:

        $("li").click(function(){$(this).clone().appendTo("b");});

我得到了一个要点,因为有&#39; li&#39;我希望克隆的文本周围的元素。我如何在克隆后删除它们或者只是克隆文本,因为这似乎是一种更好的做法?

以下是jfiddle上的链接: https://jsfiddle.net/m1yvLr86/

点击这个&#39;列表上的项目,它返回子弹点但我只想要文本!

4 个答案:

答案 0 :(得分:0)

首先获取b元素文字,附加li文字并添加覆盖b文字:

$('li').click(function () {
    $('b').html($('b').html() + '<br>' + $(this).html());
});

以下是一个实例: jsFiddle

当然,你可以使用空格或新行或其他代替<br>

答案 1 :(得分:0)

$("li").click(function(){

    text = '';
    var oldtext = $('b').text();
    var newtext = $(this).text();
    
    text = oldtext + newtext;
    

    $('b').text(text);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ol>
    <li>y</li>
    <li>z</li>
    <li>x</li>
  </ol><b></b>

答案 2 :(得分:0)

您可以使用text函数检索li元素的内容而不使用其标记:

$("li").click(function(){
    var text=$(this).text();
    // Do something with text (e.g. alert(text);
});

在我的示例中,text变量存储单击的元素文本内容:https://jsfiddle.net/ss3301qf/9/

答案 3 :(得分:0)

如评论中所述,请参阅下面的代码我已评论过 - 为了清晰起见应用了一些CSS

$("li").click(function() { /* capture the click */
  $("b").append( /* target element */
    $(this).text() /* get li text() */
  )
});
li { cursor: pointer; }
b { padding: 12px; border: 1px solid #ccc; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ol>
  <li>y</li>
  <li>z</li>
  <li>x</li>
</ol><b></b>