2016-10-04 33 views
0

我正在比較javascript/jQuery的兩個值。一個值是數據屬性,另一個值是用戶輸入的內容。我希望腳本在數據屬性中找到與單詞不匹配的用戶值中的單詞。我可以添加類到整個.text元素,但我不知道如何將類添加到單詞......我應該分割這些值嗎?比較值並將錯誤類添加到不匹配的詞

這裏是我的HTML代碼

<div id="compare-text"> 
    <div class="row"><span>1.</span><p class="text" data-for="Some sample text" spellcheck="false" contenteditable="true"></p></div> 
    <div class="row"><span>2.</span><p class="text" data-for="Some sample text" spellcheck="false" contenteditable="true"></p></div> 
    <div class="row"><span>3.</span><p class="text" data-for="Some sample text" spellcheck="false" contenteditable="true"></p></div> 
</div> 

這裏是我的腳本

$('#check').click(function() { 
var controlNumber = 1; 
$('.text').each(function() { 
    var value = $(this).attr('data-for'), 
    userValue = $(this).text(); 
    value = value.toLowerCase(); 
    userValue = userValue.toLowerCase(); 
    if (userValue === '') { 
    $(this).addClass('error'); 
    $(this).removeClass('success'); 
    controlNumber = 0; 
    } else if (value !== userValue && userValue !== '') { 
    $(this).addClass('error'); 
    $(this).removeClass('success'); 
    controlNumber = 0; 
    } else if (value === userValue) { 
    $(this).addClass('success'); 
    $(this).removeClass('error'); 
    } else { 
    controlNumber = 1; 
    } 
}); 
if (controlNumber === 1) { 
    $('#success-message').addClass('visible'); 
} 

});

回答

0

如果你想檢查輸入數據的data-for屬性值匹配,你可以這樣做:

$(".test").keydown(function(){ 
    var data = $(this).attr('data-for').split(" "), 
     text = this.value.split(0); 
    $(this).addClass("success"); 
    $(this).removeClass("error"); 
    for (var i = text.length; i--;) for (var j = data.length; j--;) { 
     if (data[j] === text[i]) { 
      $(this).addClass("error"); 
      $(this).removeClass("success"); 
    } 
}) 

更改test要素輸入,如:

<input/><textarea></textarea>

+0

我應該將此代碼粘貼到#check點擊功能中嗎? – user3043693

+0

@ user3043693海事組織你不應該粘貼你不明白的代碼......你對此有何疑問? –

相關問題