获取没有子元素内容的内容

时间:2016-08-07 09:33:32

标签: jquery

我怎样才能得到" li"没有" span"的文字内容?

HTML

<ul class="texts">
    <li>jimbo <span>Add text</span></li>
    <hr />
    <li>mary jane <span>Add text</span></li>
    <hr />
    <li>bill clinton <span>Add text</span></li>
</ul>

JS:

$(document).on('click','.texts li span',function() {    
        var current_content =  $("#addReply textarea").val();
        var chosen_content = $(this).parent("li").html();
        $("#addReply textarea").val(current_content + "\n" + chosen_content)
}); 

2 个答案:

答案 0 :(得分:0)

您可以克隆父元素,然后删除span,最后获取内容:

var foo = $(this).parent("li").clone();
foo.find('span').remove();
var content = foo.text();

答案 1 :(得分:0)

如果您想要的内容没有所点击的范围,您可以使用contentsnot(和text而不是html因为它返回你在其上调用它的集合中的所有条目的文本[不像html,它只返回集合中第一个条目的HTM):( / p>

var chosen_content = $(this).parent("li").contents().not(this).text();

示例:

$(document).on('click', '.texts li span', function() {
  var current_content = $("#addReply textarea").val();
  var chosen_content = $(this).parent("li").contents().not(this).text();
  $("#addReply textarea").val(current_content + "\n" + chosen_content)
});
<ul class="texts">
  <li>jimbo <span>Add text</span>
  </li>
  <hr />
  <li>mary jane <span>Add text</span>
  </li>
  <hr />
  <li>bill clinton <span>Add text</span>
  </li>
</ul>
<div id="addReply">
  <textarea cols=40 rows=5></textarea>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

相关问题