Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种简单的方法来设置字符串最后两个字符的样式?_Javascript_Css_Stylesheet - Fatal编程技术网

Javascript 有没有一种简单的方法来设置字符串最后两个字符的样式?

Javascript 有没有一种简单的方法来设置字符串最后两个字符的样式?,javascript,css,stylesheet,Javascript,Css,Stylesheet,我有一些浮点数,我想指出的是,最后几个数字并不那么重要。我的想法是这样的 电话号码是273.978 <span style="font-weight:bold">273.9</span><span style="color:#3399ff">78</span> 273.978 如果有类似于“第n个最后字符”的CSS选择器,那就太好了。然后我可以在我的CSS文件中设置这些,而不是在JavaScript中截取数字。有没有更好的方法来实现这一点 编辑

我有一些浮点数,我想指出的是,最后几个数字并不那么重要。我的想法是这样的

电话号码是273.978

<span style="font-weight:bold">273.9</span><span style="color:#3399ff">78</span>
273.978
如果有类似于“第n个最后字符”的CSS选择器,那就太好了。然后我可以在我的CSS文件中设置这些,而不是在JavaScript中截取数字。有没有更好的方法来实现这一点

编辑:本机JavaScript解决方案如下所示:

<span id="numstart" style="font-weight:bold">123.4</span><span id="numend" style="color:#3399ff">57</span>

<script>
var newnum = 273.978;
var numStr = String(newnum)
var numLen = numStr.length;
var newStart = numStr.substring(0,numLen-2);
var newEnd = numStr.substring(numLen-2,numLen);
document.getElementById("numstart").innerHTML = newStart;
document.getElementById("numend").innerHTML = newEnd;
</script>
123.457
var newnum=273.978;
var numStr=字符串(newnum)
var numLen=numStr.length;
var newStart=numStr.substring(0,numLen-2);
var newEnd=numStr.substring(numLen-2,numLen);
document.getElementById(“numstart”).innerHTML=newStart;
document.getElementById(“numend”).innerHTML=newEnd;

您可以使用PHP为前3/4个字符的span标记添加一个类(我假设您使用PHP生成这些浮点数),并为之后的任何内容添加一个不同的类

然后,只需将类添加到CSS文件中,以根据需要突出显示

如果没有CSS选择器可以满足您的需要,“n”选择器更多地用于标记、类和ID,而不是单个字符

编辑: 在javascript中,这可以通过使用foo.charAt(N)来实现

因此,将字符串加载到变量中:

var foo=[number generation code];
var foo0=foo.charAt(0);
var foo1=foo.charAt(1);
var foo2=foo.charAt(2);
var foo3=foo.charAt(3);

然后可以将字符打印到代码中的适当位置。

除了服务器端方法(最简单的方法)之外,还可以添加宽度为1.75em的覆盖范围;背景色:rgba(255255,0.5)并将其固定在容器对象的右侧,z索引大于主浮动显示对象


如果你觉得自己是实验性的,你可以试试HTML5
,根据浏览器的不同,它会根据自己的值四舍五入到最接近的值。

在jQuery中,我的脑海中浮现出:

<script type="text/javascript">
$('.numbers').each(function() {
    $(this).html(
        $(this).html().substr(0, $(this).html().length-2)
          + "<span style='color: #3399ff'>"
          + $(this).html().substr(-2)
          + "</span>");
});
</script>

$('.numbers')。每个(函数(){
$(this.html)(
$(this.html().substr(0,$(this.html().length-2)
+ ""
+$(this.html().substr(-2)
+ "");
});
这里有一个例子来演示它。很抱歉,这不是简单的JavaScript,但我相信这里的一位同事可以提供一个本机解决方案,如果这不符合你的要求的话

更新:这里是一个非jQuery解决方案,另一个演示了它。我还将样式分解为CSS

<style type="text/css">
.unimportant {
    color: #3399ff;
}
</style>

<script type="text/javascript">
var numberTargets = document.getElementsByClassName('number');
for(i=0; i<numberTargets.length; i++) {
    var html = numberTargets[i].innerHTML;
    numberTargets[i].innerHTML = html.substr(0, html.length-2)
      + "<span class='unimportant'>"
      + numberTargets[i].innerHTML.substr(-2)
      + "</span>";
}
</script>

.不重要{
颜色:#3399ff;
}
var numberTargets=document.getElementsByClassName('number');

对于(i=0;i与stef的想法相同:

<style type="text/css">
    .number {
        font-family: monospace;
    }
    .number:after {
        background-color: rgba(255,255,255,0.5);
        content: "";
        display: inline-block;
        height: 1em;
        width: 1.2em;
        position: relative;
        top: 0.25em;
        right: 1.2em;
    }
</style>

<span class="number">273.978</span>

.号码{
字体系列:monospace;
}
.号码:之后{
背景色:rgba(255255,0.5);
内容:“;
显示:内联块;
高度:1米;
宽度:1.2米;
位置:相对位置;
顶部:0.25em;
右:1.2米;
}
273.978

CSS唯一的解决方案,或者你会接受javascript吗?CSS会很好,但我并不乐观,所以我会选择最好的javascript解决方案。我使用YUI3,但我不认为这很重要。我不认为有严格的CSS解决方案。你在这里介绍的这个解决方案与我会做的差不多,我可以想象任何javascript解决方案会做什么n差不多可以。数字都是严格的客户端。这似乎比JavaScript方法更危险。不过,如果你通过一个示例进行研究,我可能会被说服。我并不是真的觉得有实验性;)是的,我会选择服务器端tbh