我希望更改使用输入标记
创建的按钮的文本何时发表声明
$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);检查
答案 0 :(得分:0)
我猜您的JS代码是否包含在页面顶部? JQuery Ready功能可以让您知道DOM何时就绪。如果JavaScript全部位于页面的底部,那么它将是相同的,因此您的代码将起作用。
或者,当您执行代码时,您还没有将$ eraser等分配给任何内容。
答案 1 :(得分:0)
当您加载网页时,通常会出现在HTML仍在加载时正在执行javascript的情况。如果浏览器在加载该元素之前为HTML元素执行jQuery选择器,则jQuery无需查找。
例如可以使用<div id="wrapper">...</div>
引用$("#wrapper")
,但如果引用在加载<div>
之前运行,则无法找到任何内容。
jQuery的解决方案是:
$(document).ready(function() {
//things to do when document has fully loaded
})
在你的情况下,一些选择器非常幸运,他们引用的元素恰好在这一行运行时加载了。