查找html元素并将其替换为特定文本
Find and replace a html element with an specific text
我有这样的HTML代码:
<ul>
<li><a href="#">21</a></li>
<li><a href="#">10</a></li>
<li><a href="#">6</a></li>
<li><a href="#">1</a></li>
<li><a href="#">7</a></li>
<li><a href="#">5</a></li>
</ul>
我想制作一个Jquery代码,将类添加到具有给定文本的链接中(注意,必须完全是文本)。例如,如果我调用Method(1, "replaced text")
,那么这必须是HTML结果:
<ul>
<li><a href="#">21</a></li>
<li><a href="#">10</a></li>
<li><a href="#">6</a></li>
<li><a class="myclass" href="#">1</a>replaced text</li>
<li><a href="#">7</a></li>
<li><a href="#">5</a></li>
</ul>
您可以使用filter()来匹配元素,然后将addClass()链接到after()中:
$("li > a").filter(function() {
return $(this).text() == "1";
}).addClass("myclass").after("replaced text");
try:
function someName(niddle, new_text)
{
$('ul a').each(function(){
if($(this).text() == niddle){
$(this).addClass('myclass');
$(this).after(new_text);
}
});
}
$('a:contains(10)').addClass('myclass');
在尝试代码
http://jsfiddle.net/8zmus/
jQuery没有为"这个确切的文本"提供选择器,但它很容易编写(laaeftr)。您还可以使用更灵活的"匹配"选择器,它将文本与正则表达式(不带分隔符)进行匹配:
$.extend($.expr[':'], {
matches: function (el, index, m) {
var s = new RegExp(m[3]);
return s.test($(el).text());
}
});
一旦我们做到了,剩下的就很容易了:
$("li > a:matches(^10$)").addClass("foo")
http://jsfiddle.net/am7rY/
- 使用JavaScript将标题文本替换为按钮文本
- jQuery在用新文本替换HTML文本时淡出HTML文本,而不是仅显示
- 为什么不'使用此JavaScript将文本替换为不起作用的链接
- 将元素文本替换为子项中的值
- 使用 Jquery 将文本替换为笑脸图像
- 将页面上的文本替换为 jQuery 并提示文件下载
- 使用 JavaScript 将文本替换为图像
- 将 d3 演示中的圆圈和文本替换为包含自定义 HTML 和 ko 绑定的 foreignObject
- JavaScript无法用新文本替换文本
- 将表中的文本替换为用户友好的文本
- 将.onclick属性中的文本替换为javascript
- Javascript/Jquery.使用带通配符的正则表达式将纯文本替换为html
- 按名称将文本替换为 JavaScript 属性的内容
- 如何将 JSON 字符串中的文本替换为 Greasemonkey 的用户脚本
- Javascript:用文本替换整个锚点
- 在Chrome扩展程序中将文本替换为Treewalker
- 通过将文本替换为类来换行/中断列表元素
- 如何使用javascript将文本替换为彩色文本
- JavaScript - 消除文本替换的延迟
- j查询遍历和文本替换