getting the first line of text in an element jquery
我有一个这样的示例元素:
1 2 3 | Blah blah blah. Header ... |
它也可以是这样的:
1 2 3 | <span>Blah blah blah.</span> <h4>Header</h4> ... |
我想得到元素中文本的第一行(松散地定义行)(blah blah blah)。它可能被包装在子元素中,也可能只是裸文本节点。我该怎么做?谢谢。
使用
1 2 3 4 5 6 | var first_line = $("#element") .contents() .filter(function() { return !!$.trim( this.innerHTML || this.data ); }) .first(); |
文本节点:http://jsfiddle.net/yftnh/
元素:http://jsfiddle.net/yftnh/1/
1 2 3 4 5 6 | var myElement = $("#element"); while(myElement.children().length > 0) { myElement = myElement.children().first(); } var firstText = myElement.text(); |
当然,假设文本被正确包装在元素中。您可以检查第一个元素之前是否有文本:
1 | /\s*</.test(myElement.html()) |
这是给你的主意。当然,如果在您要获取的行之前有h4元素:
1 2 3 | var content = $('#element').html(); var arr = content.split('<h4>'); console.log(arr[0]); |
计数器从1开始
1 2 | myElement.text().split(' ')[1] |
首先获取元素的内容
1 | var content = $('#element').html(); |
然后使用换行符将文本拆分为数组
1 2 | tmp = content.split(" "); |
数组的第一部分是元素的第一行
1 | var firstLine = tmp[0]; |