色突出显示所有以大写字母开头的单词

色突出显示所有以大写字母开头的单词

我是Javascript和jQuery的新手。我在段落中有一个文本。我想用黄绿色突出显示所有以大写字母开头的单词。
这是我的源代码。但是它不能正常工作。

    <!DOCTYPE html>
    <html>
    <head>
<style>
.mycls {background-color:yellowgreen}
</style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        var str = $(p).text();

                words = str.split(' ');

                for (var i = 0; i < words.length; i++) {
                    var w = words[i].split('');

                    if (w.charAt(0) === w.charAt(0).toUpperCase()) {
                        $(this).addClass("mycls");
                    }

                 //   words[i] = letters.join('');
                }
    });
    </script>
    </head>
    <body>

    <p>President of USA Barack Obama is ...</p>

    </body>
    </html>


谢谢你们!

最佳答案

$('p').each(function(){ // to each <p>
  r = /[A-Z]\w*/g; // big letter with word symbols, global search
  function f(x){
    return '<span class="y">'+x+'</span>' // rewrited
  }
  h = $(this).html(); //get
  h = h.replace(r,f); //replace
  $(this).html(h); //set
}) //done

.y {
  background-color: yellowgreen;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>President of USA Barack Obama is ...</p>

10-02 12:43