使用textarea非常简单:
<textarea id='elememt'>
1. Blah blah blah.
<div>2. Header</div>
3
</textarea>
var lines = $('textarea').val().split('\n');
alert(lines[0]; // show the first line "1. Blah blah blah."
alert(lines[2]; // show the third line "3"
但是我如何对一个满足的DIV做同样的事情?
我看过这个:
var first_line = $("#element")
.contents()
.filter(function() {
return !!$.trim( this.innerHTML || this.data );
})
.first();
哪个获得第一行但我如何获得第三行等等?
答案 0 :(得分:0)
您可以使用.html()
,String.prototype.match()
与RegExp
/.*\n/g
匹配一个或多个字符,包括换行符String.prototype.replace()
,Array.prototype.map()
, Array.prototype.join()
返回原始匹配,在匹配行的选定索引处替换字符串或部分字符串。
在问题中给定html
,.match()
返回的数组中的第一个元素将是换行符;使用3
匹配返回数组的第四个元素。
$().ready(function() {
var element = $("#element");
var matches = element.html().match(/.*\n/g);
console.log(matches);
var third_line = matches[3];
var replacement = "4";
element.html(function(i, html) {
return matches.map(function(_html, index) {
return index != 3 ? _html : _html.replace(/3/, replacement)
}).join("")
});
console.log(element.html());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div id='element'>
1. Blah blah blah.
<div>2. Header</div>
3
</div>
&#13;