function checkIfSomeoneWon() {
if ($('#b1, #b2, #b3').html() === 'X')
{
alert('Someone Won!');
}
}
我希望函数只有在所有三个ID都具有字符'X'的情况下才能执行。如何选择多个ID并检查它是否具有相同的文本?
function checkIfSomeoneWon() {
if ($('#b1, #b2, #b3').html() === 'X')
{
alert('Someone Won!');
}
}
我希望函数只有在所有三个ID都具有字符'X'的情况下才能执行。如何选择多个ID并检查它是否具有相同的文本?
您可以在数组中设置这些值,然后使用Array#Filter
来检查它们是否都等于X
。
function checkValues() {
const values = [
document.getElementById('b1').value,
document.getElementById('b2').value,
document.getElementById('b3').value,
];
if (values.filter(a => a.toLowerCase() === 'x').length === values.length) {
console.log('Someone won');
}
}
<input id="b1"/>
<input id="b2"/>
<input id="b3"/>
<button onclick="checkValues()">Check values</button>
function checkIfSomeoneWon() {
var b1 = document.getElementById('b1').value;
var b2 = document.getElementById('b2').value;
var b3 = document.getElementById('b3').value;
if((b1.indexOf("X") !== -1)&&(b2.indexOf("X") !== -1)&&(b3.indexOf("X") !== -1)){
alert('Someone Won!');
}
}
试试这个
function check() {
var one = $('#one').val(), two = $('#two').val();
if (one.indexOf('x') > -1 && two.indexOf('x') > -1) {
alert('winner you got the game');
}
}
这应该工作。
只需使用&&
操作此
function checkIfSomeoneWon() {
if ($('#b1').html() === 'X' && $('#b2').html() === 'X' && $('#b3').html() === 'X')
{
alert('Someone Won!');
}
}
checkIfSomeoneWon();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id='b1'>X</span>
<span id='b2'>X</span>
<span id='b3'>X</span>
你的条件说法是错误的!
jQuery选择将返回一个jQuery对象像数组,当你的HTML(),这将HTML返回你的第一个对象 如
<div>
<div id="b1">Y</div>
<div id="b2">X</div>
<div id="b3"></div>
</div>
你的条件语句的结果将
$('#b1, #b2, #b3').html() => Y
我不知道你想要什么,但我认为你的解决方案是坏的,当你得到的HTML比较。我认为你应该使用复选框并获取它们的值来进行比较。
回到你的问题,你可以使用
只var result = $('#b1,#b2,#b3').filter(function(i, e){
return $(e).html() === 'X';
});
if(result && result.length) {
//TODO something
alert('Someone Won!');
}
'x'或含有'x'的话? – prasanth
只有x就足够了。 – BroScience