我是javascript / jquery / html的新手,我必须用html和javascript开发一个小模拟器。
我有一个存储了html id的数组和一个应该根据传递状态更新输入的函数。
代码是这样的:
var dev_array = [["#8_1", "#8_2"], ["#8_3", "#8_4"], ["#8_5", "#8_6"], ["#8_7", "#8_8"]];
function send_dev_state_ctrl(state){
dev_array.forEach(function(entry){
for (i = 0; i < entry.length; ++i) {
console.log(entry[i]);
var input =$(entry[i]);
console.log(input);
input.value =value_hash_dev[i];
handle_ctrl_send(input);
}
});
}
控制台显示:
#8_1
[input#8_1, context: document, selector: "#8_1", jquery: "1.10.1", constructor: function, init: function…]
...
如果我在控制台中数字$(“#8_1”),我有以下输出:
[<input type="hidden" id="8_1" name="8:1" value="1">]
如何在javascript中获得相同的返回值?
答案 0 :(得分:0)
我不知道为什么要这样做:
var input =$(entry[i])[0];
它返回相同的控制台值。
我不喜欢它,但它有效。
答案 1 :(得分:-1)
你不是在使用你的console.log而只是吐出数组值。
改变这个:
console.log(entry[i]);
对此:
console.log($(entry[i]));
两者都会得到相同的结果。
----编辑----
我的错误我误解了这个问题,所以你做得不错
var input =$(entry[i])[0];
可行,这是因为$(entry[i])
是一个对象,该对象中的第一个值是通过执行$(entry[i])[0];
访问的DOM元素。
另一种方法是做到这一点:
var input =$(entry[i]).get(0);
这几乎是同样的事情。
不幸的是,没有太多其他方法可以做到。