假设我有表格
<input type="text" id="Rice" onkeyup="get();"value="">
<input type="text" id="Noodles" onkeyup="get();" value="">
<input type="text" id="Chicken" onkeyup="get();" value="">
<input type="text" id="Beef" onkeyup="get();" value="">
我在这里很困惑.. 我需要当id =“Rice”的输入值变为1,然后创建ID + VALUE(Rice 1)
JsFiddle:https://jsfiddle.net/2Lnmu5ja/
答案 0 :(得分:0)
这样做:
$(function() {
$("input").keyup(function() {
var idne = this.id;
var vale = this.value;
alert(idne + " " + vale);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="Rice" value="" placeholder="rice"><br>
<input type="text" id="Noodles" value="" placeholder="noodles"><br>
<input type="text" id="Chicken" value="" placeholder="chicken"><br>
<input type="text" id="Beef" value="" placeholder="beef"><br>
&#13;
您的问题主要是上下文之一 - 您始终选择$("input")
的值。该选择器获取所有输入元素,但是.attr()
(根据http://api.jquery.com/attr/处该方法的文档的第一行)只返回第一个匹配元素的属性值。所以无论哪个元素称为&#34; get()&#34;方法,它总是读取第一个的属性。解决方案是使用this
,它在事件监听器的上下文中将表示触发事件的元素。
我也稍微改了一下,使用了一个不显眼的事件处理程序,这个处理程序稍微冗长,代码和标记之间的分离更加清晰。