在链接中的第一个单词后面应用样式并插入换行符
我被要求在WordPress中重新创建一个HTML网站并完成所有工作,除了一个让我难倒的经济酒吧。 见图像: http : //img36.imageshack.us/img36/8964/menubare.jpg
简而言之,我需要一种方法来对元素的第一个单词进行风格化,而不是其余部分,并在第一个单词后插入换行符。 我确定这是一个快速的jQuery hack,但是对jQ知之甚少,不能让它自己发生。
这是捕获:这些小箭头表示下拉菜单出现。 我有下拉列表工作,但想确保适用于主菜单的任何解决方案,跳过下拉列表(它们是LI项目中的UL列表)。
任何帮助,将不胜感激。
如果没有菜单的HTML示例,很难给出具体的答案。
但是你可以像下面这样使用一些jQuery,它可以让你为第一个单词和其他单词添加样式。 它将.split()
空格上的HTML,给你一个数组。 将第一个项目包裹在跨度中以允许样式化。 然后使用jQuery的.each()
循环其余的项目,将它们添加回字符串。 然后用新版本替换HTML:
$('#header > ul.nav > li > a').each(function() { var obj = $(this); var text = obj.html(); var parts = text.split(' '); var replace = ''+parts[0]+'
'; parts.shift(); $.each(parts, function(key, value) { replace += ' '+value; }); obj.html(replace); });
示例CSS:
.firstWord { font-size: 15px; } .menuHeader { margin-left: 10px; float: left; font-size: 40px; } .menu { width: 100%; height: 120px; background-color: #FF8C00; }
看一下工作演示
对演示的更新反映了评论中的代码。
使用选择器:
$('#header > ul.nav > li > a')
仅选择第一个菜单项。 你应该只需要添加:
.firstWord { font-size: 15px; }
到你的CSS调整第一项的大小。
Edwin V.的好建议,您可以将jQuery更改为:
$('#header > ul.nav > li > a').each(function() { var obj = $(this); var text = obj.html(); var parts = text.split(' '); var replace = ''+parts[0]+'
'; parts.shift(); replace += parts.join(' '); obj.html(replace); });
缩短一点。 在这里演示。 。
$('#nav').children('li').find('a').each(function(){ var old = $(this).text(); $(this).html(old.substring(0,old.indexOf(' ')) +'
'+old.substring(old.indexOf(' '),old.length)); });
如果你需要申请一些课程
$(this).html(''+old.substring(0,old.indexOf(' ')) +'
'+old.substring(old.indexOf(' '),old.length)+"");