使用 jQuery 操作 DOM 对象
use jquery to manipulate dom objects
我正在使用一个CMS,它仅使用基于文本的锚点构建导航,因此其当前输出为
<li class="socialLinks"><a href="http://www.facebook.com">facebook</a></li>
我需要操作这些链接才能使用字体真棒。本质上,我想删除锚文本,但同时使用它来让一个类出现在图标元素上。最终的列表元素应如下所示。因此,获取"facebook"的锚文本,并将其作为fa-facebook类添加到第二个图标元素中。
<li class="socialLinks"><a href="http://www.facebook.com"><span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-facebook fa-stack-1x fa-inverse"></i> </span></a></li>
我试图使用 .prepend 来查找 .socialLinks 一个元素,并在锚文本前面加上 jQuery,就像这样。这有效,我只是不知道现在如何获取锚文本并将其转换为 fa-facebook 并将其添加到具有 .fa-stack-1x 类的图标中。然后完全删除锚文本。
$('.socialMediaLinks a').each(function() {
$(this).prepend('<span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-stack-1x fa-inverse"></i> </span>');
});
这返回
<li class="socialLinks"><a href="http://facebook.com" target="_blank"><span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-stack-1x fa-inverse"></i> </span>Facebook</a></li>
什么是最好的行动方案。 其次,我应该把它放在准备好的文件上还是其他东西?
你可以利用 .html()) 的这个属性来替换每个元素中识别前一个 html 的 html:
$('.socialMediaLinks a').html(function(i, html) {
var mediaclass = 'fa-' + $.trim(html).toLowerCase();
return '<span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-stack-1x ' + mediaclass + ' fa-inverse"></i> </span>';
});
小提琴:http://jsfiddle.net/RBzwk/
相关文章:
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- 正在寻找从JSON/对象构建DOM客户端的JS库
- React-从简单对象树创建dom
- minko从dom获取对象
- 不带dom对象的jquery ajaxComplete()
- 从 DOM 数组中删除 DOM 对象
- 将 JavaScript 对象添加到 DOM 中
- 关于在对象属性中保存 DOM 元素
- Raphael JS:如何从 Dom 对象(Element.node)获取 Raphael 元素
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- 创建具有关联 dom 元素的 javascript 对象的首选方法是什么
- DOM 元素是否可以具有其值为任意对象(而不是字符串)的属性
- SVG DOM对象间距/重叠
- 窗口对象属性返回一个dom节点
- DOM对象而不是其他DOM对象
- 如何区分DOM对象和JavaScript对象
- 在提取dom对象后,无法将每个名为tab的元素推送到数组中
- JavaScript中面向对象DOM操作的混乱混乱
- 在加载对象DOM之前修改对象DOM