jQuery JS 如何高亮页面上的所有数字

jQuery JS 如何高亮页面上的所有数字,第1张

这个高亮,实质上是把12变成<span style="backgroud: yellow">12</span>。

那么只要做一个替换就可以了。但是需要考虑两点:

需要被替换的内容,必须是标签里的内容,不能是属性。比如,不能把<div width="100%" color="#12fe45">这里的100,12,45都不应该被替换。

需要被替换的内容,不能是<script>标签里的内容(理所当然的吧)。比如<script>var a=123xxx</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 i<children.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。。。

<!doctype html>

<html lang="en">

 <head>

  <meta charset="UTF-8">

  <meta name="Generator" content="EditPlus®">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">

  <title>Document</title>

  <script type="text/javascript" src="jquery-1.10.2.js"></script>

  <style type="text/css">

table{

width: 50%

height: 50%

border: 1px solid #d5d5d5

overflow: hidden

color:#4682b4

font: normal 24px/100% "微软雅黑", "Lucida Grande", "Lucida Sans", Helvetica, Arial, Sans

}

tr,td{

height:30px

line-height:30px

padding: 5px

}

.highlight {

  padding:1px 4px

  margin:0 -4px

  background-color: #ccffff

  text-shadow: 1px 1px white, -1px -1px #333

  -moz-border-radius: 5px /* FF1+ */

  -webkit-border-radius: 5px /* Saf3-4 */

  border-radius: 5px /* Opera 10.5, IE 9, Saf5, Chrome */

  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.7) /* FF3.5+ */

  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.7) /* Saf3.0+, Chrome */

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.7) /* Opera 10.5+, IE 9.0 */

}

  </style>

 </head>

 <body>

<table id="myTab">

<tr>

<td>春眠不觉晓</td>

<td>处处蚊子咬</td>

<td>夜来大狗熊</td>

<td>看你往哪跑</td>

</tr>

<tr>

<td>床前明月光</td>

<td>地上鞋两双</td>

<td>一双归小姨</td>

<td>不说就给糖</td>

</tr>

</table>

<script type="text/javascript">

$(function(){

$("#myTab tr:odd").addClass("highlight")

})

</script>

 </body>

</html>

偶数行高亮显示,可用自己调整颜色


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11625823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存