我怎样才能得到" 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)
});
答案 0 :(得分:0)
您可以克隆父元素,然后删除span
,最后获取内容:
var foo = $(this).parent("li").clone();
foo.find('span').remove();
var content = foo.text();
答案 1 :(得分:0)
如果您想要的内容没有只所点击的范围,您可以使用contents
和not
(和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>