在我制作的内容中,您将值引入输入文本,其ID为Inpt1
并一直显示为5.
如果jQuery找到与数组中这些值的相关性,它会将数组app_end
的对应值放在其前面的label
中,并带有ID Inpt1_L
,换句话说,相关的类别。
以下是代码如下所示:
var choices = ['Cookie', 'Meat', 'Milk']; // The Choices available
var app_end = ['(CookieCategory)', '(MeatCategory)', '(MilkCategory)']; // Their appendages
var elem2 = $('#Inpt1_L');
$('#Inpt1').each(function() {
var elem = $(this);
// Save current value of element
elem.data('oldVal', elem.val());
// Look for changes in the value
elem.bind("propertychange change click keyup input paste",
function(event){
if (elem.data('oldVal') != elem.val()) {
var lowercasedElem = elem.val().toLowerCase();
// Run through array
for (i=0;i<choices.length;i++){
var appendage_For = app_end[i];
if((choices[i].toLowerCase() == lowercasedElem)){
elem2.empty();
elem2.append(appendage_For);
return true;
} else {
elem2.empty();
}
}
}
});
});
我试图做到这一点,以便比较也可以在前后拾取任何类型的文本。如同,有人可以输入牛奶,但他们也可以键入山羊奶或牛奶牛奶,它仍然会将其归类为牛奶。
到目前为止,我的尝试一直是徒劳的。我尝试过创建:
if(
(choices[i].toLowerCase() == lowercasedElem) ||
(choices[i].toLowerCase() == lowercasedElem+"") ||
(choices[i].toLowerCase() == ""+lowercasedElem+"")
){
但什么都没发生。甚至没有空格。
我想到了{p>.substr
,但我不确定如何将其应用于这种情况。
我怎样才能实现预期?
其次,将所有这些代码封装到一个函数中,并应用For(){}
来计算类#Inpt的字段数,是否会使该函数可以重用?
感谢您的帮助。
答案 0 :(得分:1)
在Elmer Dantas的帮助下,我能够缩小我需要的范围。
我更改了if条件以使用.search
并且它有效。
以下是代码和功能代码段。
if(lowercasedElem.search((choices[i].toLowerCase())) > -1)
var choices = ['Cookie', 'Meat', 'Milk'];
var app_end = ['(CookieCategory)', '(MeatCategory)', '(MilkCategory)'];
var elem2 = $('#Label1_L');
$('#Inpt1').each(function() {
var elem = $(this);
elem.data('oldVal', elem.val());
elem.bind("propertychange change keypress click keyup input paste select reset", function(event) {
elem2.empty();
if (elem.data('oldVal') != elem.val()) {
var lowercasedElem = elem.val().toLowerCase();
for (i = 0; i < choices.length; i++) {
var appendage_For = app_end[i];
if (lowercasedElem.search((choices[i].toLowerCase())) > -1) {
elem2.empty();
elem2.append(appendage_For);
return true;
} else {
elem2.empty();
}
}
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<div>
<input type="text" id="Inpt1">
<label id="Label1_L"></label>
</div>
</li>
</ul>
&#13;