我的javascript名称为something.js。在js文件中我有这样的功能
$(document).ready(function() {
tampilInterval();
$('#mydata').html();
function tampilInterval() {
$.ajax({
type : 'ajax',
url:$("#baseurl").val(),
dataType:"json",
method:"post",
success : function(data){
var html = '';
var i;
html += '<tr>'+
'<td>'+data[0].key+'</td>'+
'<td><input type="text" class="form-control" id="int0" name="int0" value="'+data[0].value+'"></td>'+
'</tr><tr>'+
'<td>'+data[1].key+'</td>'+
'<td><input type="text" class="form-control" id="int1" name="int1" value="'+data[1].value+'"></td>'+
'</tr>';
$('#show_data').html(html);
}
});
};
在我的情况下,我想使用来自id的值 - &gt; int0和int1到同一文件中的另一个函数。
我有代码来获取并检查这样的值
var int0 = document.getElementsByName('int0').value;
var int1 = document.getElementById('int1');
但它说&#39; null&#39;。
如何获得这个价值?或者如何将变量int0
和int1
变成已经有价值的全局变量?谢谢
答案 0 :(得分:1)
如果您使用document.getElementsByName()
,它将返回NodeList
,这有点像数组。它没有直接value
。您需要在该数组上获取该值的第零个元素:
var int0 = document.getElementsByName('int0')[0].value;
请注意[0]
。
答案 1 :(得分:1)
哦,当然。执行函数tampilInterval
时,它仅设置将在ajax-request完成时执行的侦听器success
。
如果您当前正在检查int0
和int1
DOM节点的值,则监听器尚未工作且未分配。
答案 2 :(得分:0)
我认为您可以全局存储变量并稍后获取。
$(document).ready(function() {
var value1, value2;
tampilInterval();
$('#mydata').html();
function tampilInterval() {
$.ajax({
type : 'ajax',
url:$("#baseurl").val(),
dataType:"json",
method:"post",
success : function(data){
value1 = data[0].value; value2 = data[1].value;
var html = '';
var i;
html += '<tr>'+
'<td>'+data[0].key+'</td>'+
'<td><input type="text" class="form-control" id="int0" name="int0" value="'+data[0].value+'"></td>'+
'</tr><tr>'+
'<td>'+data[1].key+'</td>'+
'<td><input type="text" class="form-control" id="int1" name="int1" value="'+data[1].value+'"></td>'+
'</tr>';
$('#show_data').html(html);
}
});
};
答案 3 :(得分:0)
函数getElementsByClassName
返回NodeList
,因此您需要使用索引获取这些元素。
var int0 = document.getElementsByName('int0')[0].value;
更好的方法是使用函数querySelector
,这样您就不必担心索引了:
var int0 = document.querySelector('[name="int0"]').value;
document.querySelector()
返回文档中与指定选择器或选择器组匹配的第一个Element,如果未找到匹配项,则返回null。
答案 4 :(得分:0)
尝试使用
$('#int0').val();
$('#int1').val();
您使用jQuery调用ajax,但下面的代码使用javascript
如果要在加载html后添加数据,请使用$(window).load()而不是$(document).ready()
Difference between $(window).load() and $(document).ready() functions
注意:使用&#34; Class&#34;而不是&#34; Id&#34;在循环中。 ID对于第一个标记
是唯一的