使用jquery更改文本的颜色

时间:2011-09-27 21:42:57

标签: javascript jquery

$(document).ready(function () {
            $("#btnhighlight").click(function () {
                alert("yes");
                var htext = $("#txthighlighttext").val();
                $("#lstCodelist option").each(function () {
                    var sp = $(this).text();
                    var sp1 = sp.split(' ');
                    $.each(sp1, function (i, l) {
                        if (l == htext) {
                            l.css('color', 'yellow');
                        }
                    });
                });
            });
        });

var x =“你好世界”; 我需要改变l上的文字颜色。这是支持我从字符串“你好”得到了文本。 CSS( 我可以l.('color', 'yellow');我收到javascript错误。

如果我这样做$(this).css('color', 'yellow');什么也没发生。

感谢

4 个答案:

答案 0 :(得分:1)

尝试:

$(l).css('color', 'yellow');

编辑:

好的......你正在使用字符串而不是实际的DOM元素。我的建议是动态地将l放入像<span>之类的元素中,然后将CSS应用于该元素,然后替换DOM中的原始文本。我实际上做了类似于此的事情:

http://www.randomsnippets.com/2008/03/07/how-to-find-and-replace-text-dynamically-via-javascript/

我不是说这是一个完美的解决方案,但它会引导你走上正确的道路。

答案 1 :(得分:0)

l in是您正在迭代的元素,将其包装在$内并且您很高兴

尝试

$.each(sp1, function (i, l) {
if (l == htext) {
  $(l).css('color', 'yellow');
}

答案 2 :(得分:0)

会像这样的工作吗? (未经测试)

     $('<span>', {
            'style': 'color:yellow',
            html: l
        }).appendTo('#divName'); 

答案 3 :(得分:0)

如前所述l不是dom元素,这意味着你只需要在下一个循环中“推”它。

$("#lstCodelist option").each(function () {
    var sp = this; //or $(this) and then you do sp.css('color', 'yellow');
    var sp1 = $(this).split(' ');

    $.each(sp1, function (i, l) {
       if (l == htext) {
           $(sp).css('color', 'yellow');
       }
    });
});
相关问题