【问题标题】:How to check a number inside a span and change its color based on the value?如何检查范围内的数字并根据值更改其颜色?
【发布时间】:2015-05-08 12:59:01
【问题描述】:

这就是我所拥有的。它没有正确读取值。

http://jsfiddle.net/neowot/7o87wrsy/

HTML:

<a class="InterestLink">Click me</a>

<div id="InterestExpander">
            <div id="InterestExpanderX">
                &times;
            </div>

            <br><br>

            General Rating: 
            <span class="RatingGeneralNumber">80%</span>
</div>

CSS:

<a class="InterestLink">Click me</a>

<div id="InterestExpander">
            <div id="InterestExpanderX">
                &times;
            </div>

            <br><br>

            General Rating: 
            <span class="RatingGeneralNumber">80%</span>
</div>

jQuery:

$('.InterestLink').click(function() {
    $('#InterestExpander').fadeIn(450);

    if (parseInt($('.RatingGeneralNumber').val()) > 50 ) {
        $('.RatingGeneralNumber').css({"color":"green"});
    }

}); 



$('#InterestExpanderX').click(function() {
    $('#InterestExpander').fadeOut(250);
});

另外,还有一个问题,我在这里。该网站将有多个不同电影的链接。每次他们点击电影链接时,都会弹出相同的 div,但会根据数据库的内容为电影评分。

将包含电影分级的跨度作为“ID”或“类”类型更合适,还是两者都不合适?

【问题讨论】:

  • 只有输入元素有值,所以使用 .text() 而不是 .val()
  • 值得注意的是,如果您使用的是parseInt,它是recommended to use the radix parameter
  • @JamesThorpe 好的,谢谢!

标签: javascript jquery html css


【解决方案1】:

使用text() 而不是val span 元素使用text()

    $('.InterestLink').click(function() {
        $('#InterestExpander').fadeIn(450);
        
        if (parseInt($('.RatingGeneralNumber').text()) > 50 ) {
            $('.RatingGeneralNumber').css({"color":"green"});
        }
     
    }); 



    $('#InterestExpanderX').click(function() {
        $('#InterestExpander').fadeOut(250);
    });
.InterestLink {
}

#InterestExpander {
    color:white;
    background-color:#484848;
    position:fixed;
    margin-left:auto;
    margin-right:auto;
    width:700px;
    height:480px;
    display:none;
    box-shadow:0px 0px 5px 0px #000000;
}

 
#InterestExpanderX {
    float:right;
    cursor:pointer;
    font-family:Arial;
    font-size:50px;
}


.RatingGeneralNumber{
    display:block;
    font-size:22px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<a class="InterestLink">Click me</a>

<div id="InterestExpander">
            <div id="InterestExpanderX">
                &times;
            </div>
         
            <br><br>
                   
            General Rating: 
            <span class="RatingGeneralNumber">80%</span>
</div>

【讨论】:

  • 谢谢你,这很好用。 :] 只要 stackoverflow 允许,我就会接受它作为“已解决”。
【解决方案2】:

您需要将$(".RatingGeneralNumber").val() 替换为$(".RatingGeneralNumber").text(),因为val() 仅适用于form 子元素,例如:inputtextareaoption 元素。试试这个,你的代码将完美运行! :)

【讨论】:

  • "仅用于输入元素" ...和&lt;select&gt;&lt;textarea&gt;,但是是的。
  • 所以对于表单子元素是正确的表达方式! :) 我将编辑我的答案
猜你喜欢
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-09
相关资源
最近更新 更多