首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Jquery替换值为图像?

用Jquery替换值为图像?
EN

Stack Overflow用户
提问于 2009-06-17 00:21:47
回答 1查看 247关注 0票数 1

我有一个有很多评论的页面。

代码结构如下:

代码语言:javascript
复制
+ <li id="li-comment-65" class="comment even thread-odd thread-alt depth-1">
     <div class="comment-body">
        <div id="comment-65">
           <div class="comment-author vcard">
              <img height="30" width="30" href="" alt="" />                        
              <cite class="fn">keith</cite>                  
           </div>
           <div class="comment-meta commentmetadata">
              <a href="#">June 16, 2009 at 10:21 pm</a>
           </div>
           <div id="rating-65" class="rating-class">Excellent</div>
           <p>Hiya</p>
        </div>
     </div>
  </li>

我想做的是:

  1. 从每个“等级级”类中获取值。(最高有5个值: a.优秀b.非常好的c.好d.好e.
  2. ,如果评级为“优秀”)-显示5星图像并删除“优秀”文本
  3. 如果评级为“非常好”,则显示四星图像并删除“非常好”的

这很难做到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-17 00:24:35

这应该可以做到:

代码语言:javascript
复制
$('div.rating-class').each(function() {
    var value = $.trim($(this).text());
    var src;
    switch(value) {
        case 'Excellent':
            src = 'fivestars.png';
            break;
        case 'Very Good':
            src = 'fourstars.png';
            break;
        ...                     
    }
    $img = $('<img/>').attr('src', src);
    $(this).html($img);
});

更好的做法是这样做:

代码语言:javascript
复制
$('div.rating-class').each(function() {
    var value = $.trim($(this).text()).replace(' ', '_').toLowerCase();
    $(this).addClass(value);
});

然后有这样的CSS类:

代码语言:javascript
复制
div.rating-class.excellent {
    background-image: url(fivestars.png);
    text-indent: -1000px;
}
div.rating-class.very_good {
    background-image: url(fourstars.png);
    text-indent: -1000px;
}
...

其中的文本缩进将隐藏您原来有的常规文本。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1004534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档