在元素jquery中获取第一行文本 [英] getting the first line of text in an element jquery

查看:99
本文介绍了在元素jquery中获取第一行文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的示例元素:

 < div id =element> 
Blah等等等等。
< div>标头< / div>
...
< / div>

它也可以是这样的:

 < div id =element> 
< span> Blah blah blah。< / span>
< h4>标头< / h4>
...
< / div>

我想让第一行(松散定义行)(Blah blah blah。)元素。它可能被包裹在一个子元素中,或者只是裸体的textnode。我怎么做?谢谢。

使用 contents() [docs] 方法来获取所有子元素,包括文本节点,过滤掉任何空的(或只有空白的)节点,然后抓取该集合的第一个。

  var first_line = $(#元素)
.contents()
.filter(function(){
return !! $。trim(this.innerHTML || this.data);
})
.first();

文字节点: http://jsfiddle.net/Yftnh/



元素: < $ h $ = $ $ $ $ $ $

I have an example element like this:

<div id="element">
  Blah blah blah.
  <div>Header</div>
  ...
</div>

it can also look like this:

<div id="element">
  <span>Blah blah blah.</span>
  <h4>Header</h4>
  ...
</div>

I want to get the first line (defining line loosely) (Blah blah blah.) of text inside the element. It might be wrapped inside a child element or just be naked textnode. How do I do that? Thanks.

解决方案

Use the contents()[docs] method to get all children, including text nodes, filter out any empty (or whitespace only) nodes, then grab the first of the set.

var first_line = $("#element")
                       .contents()
                       .filter(function() { 
                           return !!$.trim( this.innerHTML || this.data ); 
                       })
                       .first();

text node: http://jsfiddle.net/Yftnh/

element: http://jsfiddle.net/Yftnh/1/

这篇关于在元素jquery中获取第一行文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆