扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
script type="text/javascript"
目前创新互联建站已为数千家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、金城江网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
/**
*由于你的代码很多,而我只更改了JavaScript部分,所以我只发JS部分了。
*
*另外,我改动的地方都做了注释,具体详见:
*/
var obj = document.getElementById("frameContent");//获取内容层
var pages = document.getElementById("pages");//获取翻页层
window.onload = function()//重写窗体加载的事件
{
var allpages = Math.ceil(parseInt(obj.scrollHeight)/parseInt(obj. offsetHeight));//获取页面数量
pages.innerHTML = "b共"+allpages+"页/b ";//输出页面数量
for (var i=1;i=allpages;i++){
//这里对初始分页做了判断,如果是第一次循环,则将第一页高亮,因为是JS分页程序也决定了网页开启后为第一页:
pages.innerHTML += "a href=\"javascript:showPage('"+i+"');\" style=\"color:" + (i==1?"#F00":"#06C") + "\"第"+i+"页/a ";
//循环输出第几页
}
}
function showPage(pageINdex)
{
obj.scrollTop=(pageINdex-1)*parseInt(obj.offsetHeight);//根据高度,输出指定的页
//下面我做了点击事件的判断,点击了哪个,哪个高亮,其余的变回原色:
var as = pages.getElementsByTagName('a');
for(var i=0; ias.length; i++){
as[i].style.color = i+1 == pageINdex ? '#F00' : '#06C';
}
}
/script
这个高亮,实质上是把12变成span style="backgroud: yellow"12/span。
那么只要做一个替换就可以了。但是需要考虑两点:
需要被替换的内容,必须是标签里的内容,不能是属性。比如,不能把div width="100%" color="#12fe45"这里的100,12,45都不应该被替换。
需要被替换的内容,不能是script标签里的内容(理所当然的吧)。比如scriptvar a=123; xxx/script 这里的123不应该被替换。
所以,考虑到以上,最终的做法必须是遍历所有的标签,然后如果标签里没有标签的时候,才把标签里的文字作替换。
(function hilightNumber(jqObj) {
// 不能替换script标签里的数字
var domObj = jqObj[0];
if (domObj.nodeName == "SCRIPT") {
return;
}
// 如果标签里有标签,我们也不作替换,而是递归进去遍历内层的标签。
var children = jqObj.children();
if (children.length 0) {
for(var i=0; ichildren.length; i++) {
hilightNumber($(children[i]));
}
} else {
// 标签里只有文字,没有内层标签的时候,才做替换,
// 把123替换成带颜色的标签内包含123,就实现了高亮。
var hilightedHtml = jqObj.html().replace(/([+\-]?[0-9]+(\.[0-9]+)?)/g, "span style='background:yellow;'$1/span");
jqObj.html(hilightedHtml);
}
})($("body"));
注意!这个不能解决全部的问题,但大部分情况应该可以用了。
不能解决的例子:
p我是诡异的段落2333,但是我里面竟然还有子标签!b这里是加黑的字666/b。span这里是其它颜色12345的哈哈/span/p
如果是上面这样的HTML,2333可能不会被加亮。。。毕竟p里还有内层标签b和span。。。
这是表格高亮显示功能。
hover一个模仿悬停事件。鼠标移动到一个对象上面及移出这个对象。的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种保持在其中的状态。当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。而且,会伴随着对鼠标是否仍然处在特定元素中的检测,如果是,则会继续保持悬停状态,而不触发移出事件。
第一种各行换色,第二种鼠标移动到对应行,高亮显示。
就是通过CSS样式,突出显示那个层,看起来像是被灯光照亮的效果。总之就是一种显示方式而已
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流