jQuery prop方法在$(document).ready()之外不起作用

手埃尔斯坦

我希望更改使用Input标签制作的按钮的文本

当这句话

$clearbutton.prop('value', "New Text For The Button");

在里面

$(document).ready( function{  } );

它做得很好。

但是,如果我将相同的语句放在ready()外部定义的函数中的ready()外部

它不执行

sendtext5 = "Bwahahaha";
sendtext4 = "Send Text 4";

$eraser.prop('value', sendtext5);       // NOT WORKING
$clearbutton.prop('value', sendtext5);  // NOT WORKING
$screen2top.text(sendtext4); // Works
$oneword.text(sendtext4);    // Works
alert("BEFORE CLEARBUTTON"); // Works 

HTML5是

<input type="button" data-role="button" id="clearbutton" class="eraser" value="Remo">

我也尝试了以下

$(".eraser").prop('value', sendtext5);  
$("#clearbuton").prop('value', sendtext5);  

但是,当上述两个语句中的任何一个放置在$ document.ready()中时,它们中的任何一个都可以正常工作。

我还意识到sendtext5变量确实显示了正确的值。我使用了alert(sendtext5); 去检查

马克·韦德

当您加载网页时,通常会在HTML仍在加载的情况下执行javascript。如果浏览器在加载HTML元素之前为HTML元素执行jQuery选择器,则jQuery找不到任何内容。例如,<div id="wrapper">...</div>可以使用进行引用$("#wrapper"),但是如果引用在<div>加载之前运行,则找不到任何内容。

jQuery的解决方案是:

$(document).ready(function() {
  //things to do when document has fully loaded
})

在您的情况下,某些选择器的运行非常幸运,因为它们引用的元素恰好在此行运行时已加载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章