Javascript 为什么不是';t正在提取的字符串的值?
我正在阅读《雄辩的Javascript》一书,其中一个练习有点麻烦(我把所有的练习放在一个页面上,这不是我要求的)。基本上,它要求创建一个函数,该函数将遍历一个字符串,找到该字符串中的“B”数,然后返回该数。由于某些原因,它只返回0。函数本身很好,但我很难找到修复它的方法Javascript 为什么不是';t正在提取的字符串的值?,javascript,jquery,html,Javascript,Jquery,Html,我正在阅读《雄辩的Javascript》一书,其中一个练习有点麻烦(我把所有的练习放在一个页面上,这不是我要求的)。基本上,它要求创建一个函数,该函数将遍历一个字符串,找到该字符串中的“B”数,然后返回该数。由于某些原因,它只返回0。函数本身很好,但我很难找到修复它的方法 $(document).ready(function() { var text = $('#beaninput').val(); function countBeans(string) { va
$(document).ready(function() {
var text = $('#beaninput').val();
function countBeans(string) {
var beanCounter = 0;
for (i = 0; i < string.length; i++) {
if (string.charAt(i) == "B") {
beanCounter += 1;
};
};
return beanCounter;
};
$('#beanbutton').click(function() {
$('#beanbot').empty();
$('#beanbot').append(countBeans(text) + " Beans");
});
});
$(文档).ready(函数(){
var text=$('#beaninput').val();
函数countBeans(字符串){
var-beanCounter=0;
对于(i=0;i
作为参考,#beaninput是一个HTML文本输入字段,#beanbutton是一个按钮,它应该在#beanbot中显示“B”的数量
谢谢
编辑:谢谢大家!很好 在“就绪”初始化期间,您的代码只获取一次文本字段的值。它应该获取“click”处理程序中的值
将声明
text
变量的行移动到按钮的“click”处理程序的开头。在“ready”初始化过程中,您的代码只获取一次文本字段的值。它应该获取“click”处理程序中的值
将声明
text
变量的行移动到按钮的“click”处理程序的开头。您应该在onClick
事件处理程序中移动text
赋值:
$('#beanbutton').click(function() {
var text = $('#beaninput').val();
$('#beanbot').empty();
$('#beanbot').append(countBeans(text) + " Beans");
});
您应该在
onClick
事件处理程序中移动text
赋值:
$('#beanbutton').click(function() {
var text = $('#beaninput').val();
$('#beanbot').empty();
$('#beanbot').append(countBeans(text) + " Beans");
});
您需要移动
var text=$('#beaninput').val()
到。单击
函数,否则其值将始终为0
,即:
$(文档).ready(函数(){
函数countBeans(字符串){
var-beanCounter=0;
对于(i=0;i
去
您需要移动var text=$(“#beaninput”).val()
到。单击
函数,否则其值将始终为0
,即:
$(文档).ready(函数(){
函数countBeans(字符串){
var-beanCounter=0;
对于(i=0;i
去
触发DOM就绪(DOMContentLoaded
)事件时,输入值为空。
您应该在希望处理该值的位置读取该值
$(文档).ready(函数(){
$('#bean')。在(“输入”,函数()上){
var=this.value.match(/b/gi);
$('output').val(bees?bees.length:0);
});
});代码>
触发DOM就绪(DOMContentLoaded
)事件时,输入值为空。
您应该在希望处理该值的位置读取该值
$(文档).ready(函数(){
$('#bean')。在(“输入”,函数()上){
var=this.value.match(/b/gi);
$('output').val(bees?bees.length:0);
});
});代码>
您可能需要输入var text=$(“#beaninput').val()代码>在处理程序内单击
在计数前获取最新值。按照现在的方式,它只会在页面加载时使用初始值,该值将为空代码>在处理程序内单击
在计数前获取最新值。按照现在的方式,它只会在页面加载时使用初始值,该值将为空。