Div ішіндегі мәтіннің түсін өзгерту jquery құрамында

Мұнда div ішіндегі бүкіл мәтін қызыл түске ие болады. бірақ маған өзгертілетін «бар» сөздің түсі қажет


    
     <head>
      <title> new document </title>
     <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
     <script type="text/javascript">
        $(document).ready(function(){
            $("#foo:contains('bar')").css('color','red');
        });
     </script>
     </head>
     <body>
    <div id="foo">
        this is a new bar 
    </div>
     </body>
    </html>
5
немесе, ұзындығы секілді (инлайнда көрсету)
қосылды автор A. Wolff, көзі
Мәтінді бөлікке бөліп, «бар» дегенді өзіңіздің жеке элементіңізге салыңыз. Сіз innerHTML және string функциялары/regex немесе DOM әдістерін қолдана отырып, мұны істейсіз бе.
қосылды автор CBroe, көзі
bar сөзін басқа элементпен қоршау қажет.
қосылды автор Gary, көзі
Ия, сіздер балаларыңыз дұрыс, бірақ бұл жағдайда маған қажет нәрселерді динамикалық түрде қол жеткізуге болады
қосылды автор Vignesh, көзі

6 жауаптар

Осылай жасалуы мүмкін:

http://jsfiddle.net/PELkt/

var search = 'bar';
$(document).ready(function() {
    $("div:contains('"+search+"')").each(function() {
        var regex = new RegExp(search,'gi');
        $(this).html($(this).text().replace(regex, ""+search+""));
    });
});
6
қосылды
i жалаушасы бұл шешімді регистрді қабылдамайды.
қосылды автор Nathan Arthur, көзі
$("div:contains('bar')").each(function() {
    $(this).html($(this).html().replace("bar", "bar"));
});

бұл сөзсіз жұмыс істейді

Демо бөлімін қараңыз Мұнда

5
қосылды

Сіз мына жолмен пайдалана аласыз:

       $(document).ready(function(){
              // $("#foo:contains('bar')").css('color','red');
               var text = 'bar' ;
               var  context = $("#foo").html();
               $("#foo").html(context.replace(text,''+text+''));
        });
2
қосылды

Бұл әрекетті байқап көріңіз ... прототипі кітапханасы:

<html> 
<head> 

    
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript">
        Event.observe(window,'load',function(){
            var htm = $('content').innerHTML;
            $('content').innerHTML = htm.sub('bar','bar');
        });
    </script>
</head>
<body>

    <div id="content">
        this is a new bar
    </div>

</body>
2
қосылды
OP қазірдің өзінде jQuery пайдаланады.
қосылды автор Gary, көзі

Сіз мұны істей аласыз.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

$(document).ready(function(){
    var matchingTest = 'demo';
    $("#container:contains("+matchingTest+")").each(function() {
            $(this).html($(this).html().replace(matchingTest, ""+matchingTest+""));
    });
});
.red{
  background:#eada93;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="container">
  Hello this is a demo contents.
</div>
</div> </div>
0
қосылды

Код үзіндісімен шешім.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

var text_change = 'bar';
$(document).ready(function() {
    $("div:contains('"+text_change+"')").each(function() {
        var regex = new RegExp(text_change,'gi');
        $(this).html($(this).text().replace(regex, ""+text_change+""));
    });
});
.red {
    color:#008000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="text">this is a new bar and bar.</div>
</div> </div>
0
қосылды