我希望某种形式从用户提供的某种输入中返回大于10的数字。这需要与运行另一个功能的页面在同一页面中运行。
第二个函数“ mare”返回未定义,而第一个函数正常。应该有办法将输入存储在数组中,然后在其上传递函数吗?
我是菜鸟,因此欢迎其他任何建议或技巧。
$(document).ready(function() {
var val = '';
var contor = 0;
function multiplu(j) {
return j % 3 == 0 || j % 7 == 0;
}
function mare(input) {
for (var i = 0; i < input.length; i++) {
if (input[i] > 10) {
return contor++;
};
}
};
$('#newItem').keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#unu').append('<li>' + this.value + ': ' +
multiplu(this.value) + "</li>");
}
});
$('#newItem2').keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#doi').append('<li> din sirul ' + this.value + 'sunt: ' +
mare(this.value) + " mai mari ca 10 </li>");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="newItem">
<input type="text" id="newItem2">
<div id="prnt">
<ul id="unu">
<li>potato</li>
</ul>
</div>
<div id="prnt">
<ul id="doi">
<li>potato</li>
</ul>
</div>
答案 0 :(得分:0)
您想从输入数量中获得大于10的数字,然后可以为这些输入分配一些class
,例如item
。
然后使用jquery查找所有$('.item').toArray()
类的输入。
您可以过滤这些输入,并使用.filter(x => x.value > 10)
仅选择那些值大于10的输入。
然后只需获取.length
,它将返回此类输入的总数。
您可以在下面查看完整的代码。
$(document).ready(function() {
var val = '';
var contor = 0;
function multiplu(j) {
return j % 3 == 0 || j % 7 == 0;
}
function mare() {
return $('.item').toArray().filter(x => x.value > 10).length;
};
$('#newItem').keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#unu').append('<li>' + this.value + ': ' +
multiplu(this.value) + "</li>");
}
});
$('#newItem2').keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#doi').append('<li> din sirul ' + this.value + 'sunt: ' +
mare() + " mai mari ca 10 </li>");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="item" id="newItem">
<input type="text" class="item" id="newItem2">
<div id="prnt">
<ul id="unu">
<li>potato</li>
</ul>
</div>
<div id="prnt">
<ul id="doi">
<li>potato</li>
</ul>
</div>
答案 1 :(得分:0)
正如我在评论中提到的,您应该定义分隔符(我将其定义为,
)。然后在回车键上,您应该使用此分隔符拆分输入字符串,然后遍历此数组并检查哪些数字大于10。这里是一个示例:
var val = '';
function multiplu(j) {
return j % 3 == 0 || j % 7 == 0;
}
function mare(input) {
var contor = 0;
const splitted = input.split(',');
splitted.forEach(function(value) {
if (+value > 10) {
++contor;
}
});
return contor;
};
$('#newItem').keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#unu').append('<li>' + this.value + ': ' +
multiplu(this.value) + "</li>");
}
});
$('#newItem2').keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#doi').append('<li> din sirul ' + this.value + ' sunt: ' +
mare($(this).val()) + " mai mari ca 10 </li>");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="newItem">
<input type="text" id="newItem2">
<div id="prnt">
<ul id="unu">
<li>potato</li>
</ul>
</div>
<div id="prnt">
<ul id="doi">
<li>potato</li>
</ul>
</div>