更改范围文本非常慢

时间:2013-08-26 19:27:32

标签: javascript css html

这是我的代码:

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
var spans = document.getElementsByTagName("span");
for(var i=0;i<spans.length; i++) {
 if(spans[i].innerHTML == "Test 2") {
    spans[i].innerHTML = "some example text";
    break;
 }
}
});//]]>  
</script>

<div class="sptests">
  <ul>
      <li id="sp_test" class=""><span>Test</span></li>
      <li id="sp_test2" class=""><span>Test 2</span></li>
      <li id="sp_test3" class=""><span>Test 3</span></li>
  </ul>
</div>

我想更改li id =“sp_test2”的范围文本。我使用上面的javascript,但它需要很长时间才能更改,即它首先显示“测试2”文本,然后在页面加载完成后显示更改的文本“一些示例文本”。

我想在页面加载时立即更改该范围文本。 任何人都可以帮助...也建议使用替代方法。

2 个答案:

答案 0 :(得分:2)

<script type='text/javascript'>//<![CDATA[ 
$(document).ready(function(){
var spans = document.getElementsByTagName("span");
for(var i=0;i<spans.length; i++) {
 if(spans[i].innerHTML == "Test 2") {
    spans[i].innerHTML = "some example text";
    break;
 }
}
});//]]>  
</script>

试一试。如果我是正确的,$(window).load等待一切都到位。 $(document).ready应该更快。

修改

其次,如果你正在使用jQuery(你是,对吗?从你对$(窗口)的用法看?),你也可以使用它:

<script type='text/javascript'>//<![CDATA[ 
$(document).ready(function(){
    $("sp_test2").children("span").html("Some example text");
});//]]>  
</script>

<div class="sptests">
  <ul>
      <li id="sp_test" class=""><span>Test</span></li>
      <li id="sp_test2" class=""><span>Test 2</span></li>
      <li id="sp_test3" class=""><span>Test 3</span></li>
  </ul>
</div>

答案 1 :(得分:0)

使用jquery:

$("span").each(function() {
    if($(this).text() == "Test 2") {
        $(this).text('some example text');
    }
})