2017-08-19 14 views
0
function checkIfSomeoneWon() { 
    if ($('#b1, #b2, #b3').html() === 'X') 
    { 
     alert('Someone Won!'); 
    } 
} 

3つのIdすべてに「X」という文字が含まれている場合にのみ、関数を実行します。複数のIDを選択して同じテキストがあるかどうかを確認するにはどうすればよいですか?

+0

のみ 'X' X 'または'の単語が含まれているを使用することができますか? – prasanth

+0

xで十分です。 – BroScience

答えて

2

これらの値を配列に設定し、次に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>

+0

ニースのための+1、別のアプローチ。あなたのコードはupperCaseにのみ一致します。それには 'a.toLowerCase()== 'x''を使用してください。 – prasanth

+0

@prasadあなたは絶対に正しいです:)コードが更新されました、ありがとう! – Erazihel

0
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!'); 
} 
} 
0

これは動作するはずです。この

function check() { 
    var one = $('#one').val(), two = $('#two').val(); 

    if (one.indexOf('x') > -1 && two.indexOf('x') > -1) { 
     alert('winner you got the game'); 
    } 
} 

を試してみてください。

0

単にあなたの条件文が間違っているこの

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>

+0

'html()'の代わりに 'text()'を推奨します。子のouterhtmlを含んでいます – prasanth

+0

うまく動作します!ありがとう。 – BroScience

+0

これを緑色にすることができます。 –

0

ため&&演算子を使用します!

jQueryのセレクタを使用すると、HTMLを()を取得する場合、それが第一の目的でHTML を戻ります、配列のようにあなたのjQueryオブジェクトを返します。例えば

<div> 
    <div id="b1">Y</div> 
    <div id="b2">X</div> 
    <div id="b3"></div> 
</div> 

あなたの条件文ます

$('#b1, #b2, #b3').html() => Yの結果

あなたは何が欲しいのか分かりませんが、私はあなたの解決策が悪いと考えています。私はあなたがチェックボックスを使用して、それらの値を比較するべきだと思う。

戻るあなたの質問に、あなたは

var result = $('#b1,#b2,#b3').filter(function(i, e){ 
    return $(e).html() === 'X'; 
}); 

if(result && result.length) { 
    //TODO something 
    alert('Someone Won!'); 
} 
関連する問題