javascript替换span中的文本

时间:2011-04-18 15:51:45

标签: javascript string replace str-replace

我环顾四周,找到了这段代码并试图让它运转但没有运气。基本上,如果单击该按钮,则假设使用Hello world替换span中的文本。

<script type="text/javascript">
    $(function(){                                
            $("#change").click(function(){              

                var onlineSpan = $("#people").text().replace("Hello World");
                $("#people").text(onlineSpan);

            });

            $("#refresh").click(function(){
                location.reload();
            });

        });
</script>

<span id="people">content to replace</span>
<button id="change"> Change </button>

我想要做的是替换span中的文本,但是使用数组每隔60秒使用数组中的随机条目更新跨度,而不是使用按钮。此外,该范围位于iframe内,此iframe位于同一个域中。

iframe 1

var myCars = new Array();
myCars[0] = "Saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";

$(function(){                                
     $("#change").click(function(){              

     var carSpan = $("#cars").text().replace(myCars);
     $("#cars").text(carSpan);

     });
 });

iframe 2

<span id="cars">content to replace</span>

2 个答案:

答案 0 :(得分:1)

要以一定间隔(每60秒)执行Javascript,请使用setInterval。要获得随机数,请按照here所述使用Math.random()。

var myCars = new Array();
myCars[0] = "Saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";

function changeCars() {
     var randomI = Math.floor(Math.random()*myCars.length);
     var carSpan = $("#cars").html(myCars[randomI]);
}

$(document).ready(function(){                                
     setInterval(changeCars, 60000);
 });

你可以see this in action

答案 1 :(得分:0)

好吧,如果你想在跨度中添加新值:

 var carSpanText = $('#cars').text(),
     randomnum = Math.floor(Math.random() * myCars.length);
 $('#cars').text( carSpanText + myCars[randomnum] );

如果您只需要替换文本,那么:

 var randomnum = Math.floor(Math.random() * myCars.length);
 $('#cars').text( myCars[randomnum] );