1

$('pre:contains("\n")')将选择<pre>包含至少一个换行符的所有内容。
如何选择所有<pre>最后不包含换行符或只有一个换行符的内容?
什么是快速方法?

匹配

<pre>A</pre>

<pre>B
</pre>

不匹配

<pre>C

</pre>

<pre>

D</pre>

<pre>

E
</pre>
4

4 回答 4

2

这个怎么样:

$('pre:not(:contains("\n"))')

于 2012-04-20T06:16:48.397 回答
2

也许简单的方法就足够了,修剪文本然后检测换行符:

var myList = $('pre').filter(function(index) {
    var val = $(this).text().trim();
    return val.indexOf('\n') == -1;
});

$.each(myList, function() {
    alert($(this).text());
});​

样本数据:

<pre>hello</pre>

<pre>great
</pre>

<pre>you
say
</pre>

<pre>

yes</pre>

<pre>

heila
</pre>

<pre>not
included</pre>

<pre>included</pre>
​

输出:

 hello
 great
 yes
 heila
 included

现场测试:http: //jsfiddle.net/Anb6q/1/

于 2012-04-20T07:17:14.763 回答
1
var myList = $('pre').filter(function(index) {
    var val = $(this).text();
    return val.substring(0, val.length -2).indexOf('\n') === -1;
});

在这里摆弄...

编辑Michael Buen评论

于 2012-04-20T06:31:16.863 回答
0

这就是我得到的。

$('pre').filter(function(){
    var txt = $(this).text()
    return txt.substring(0, txt.length-1).indexOf('\n')==-1
}).css({'background-color':'#FFF4E8',
        'border-top':'1px solid #FF6600',
        'border-bottom':'1px solid #FF6600',
        'padding': '1px 0 1px 0',
})
于 2012-04-20T08:08:30.747 回答