如何防止 Cufón 替换特定类下元素中的文本?
我正在使用 Cufón 替换网页上的文本,并且已加载 jQuery 库。我正在尝试替换
元素的所有实例(其中包括
等),但仅当它们不这样做时t出现在某个类别下。
下面是一些 HTML 示例:
<ul>
<li>This</li>
<li>Should</li>
<li>Be Replaced</li>
</ul>
<div>
<ul>
<li>So should</li>
<li>this</li>
</ul>
</div>
<div class='no-cufon'>
<ul>
<li>Don't replace this</li>
</ul>
</div>
请注意,我的大部分 HTML 都是动态的——否则我就直接更改标记。
我正在使用命令 Cufon.replace('*:not(.no-cufon) li');
来替换文本,但它仍然针对全部
标签在我的开发者控制台 (Chrome 12) 中,我使用这些 jQuery 选择器获得以下值:
$("body *").length
11
$("body *:not(.no-cufon)").length
10
$("body * li").length
6
$("body *:not(.no-cufon) li").length
6
出于某种原因,
标签位于no-cufon
类仍在我的最终 jQuery 选择器中匹配。那么,如果这不起作用——什么可以呢?
I'm using Cufón to replace text on a webpage, and I have the jQuery library loaded. I'm trying to replace all instances of <li>
elements (among others like <p>
, et cetera), but only when they don't appear under a certain class.
Here is some sample HTML:
<ul>
<li>This</li>
<li>Should</li>
<li>Be Replaced</li>
</ul>
<div>
<ul>
<li>So should</li>
<li>this</li>
</ul>
</div>
<div class='no-cufon'>
<ul>
<li>Don't replace this</li>
</ul>
</div>
Note that most of my HTML is dynamic--otherwise I'd just go ahead and change the markup.
I'm using the command Cufon.replace('*:not(.no-cufon) li');
to replace the text, but it's still targeting all <li>
tags
In my developer console (Chrome 12), I get the following values with these jQuery selectors:
$("body *").length
11
$("body *:not(.no-cufon)").length
10
$("body * li").length
6
$("body *:not(.no-cufon) li").length
6
For some reason the <li>
tags under the no-cufon
class are still being matched in my final jQuery selector.
So if that doesn't work--what will?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
filter() 怎么样?通过以下内容,它选择所有没有
no-cufon
父元素的li
元素。例子:
http://jsfiddle.net/niklasvh/prr4W/
How about filter()? With the following it selects all
li
elements that don't haveno-cufon
parents.example:
http://jsfiddle.net/niklasvh/prr4W/
body :not(.no-cufon) li
与body .no-cufon ul li
匹配相同的li
,因为>ul
本身是:not(.no-cufon)
。试试这个:
body :not(.no-cufon) li
is matching the sameli
s asbody .no-cufon ul li
, because theul
s themselves are:not(.no-cufon)
.Try this instead: