我想更改名为<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script>
//for desktop mobile display date today
window.onload = function(){
var dateverify = document.getElementById("dateToday");
var desktopDate = function(){
//for desktop
var a = moment().format('LL');
document.getElementById("dateToday").innerHTML = a;
}
var tabletDate = function(){
//for tablet
var b = moment().format('LL');
document.getElementById("datedate").innerHTML = b;
}
if(dateverify !== null){
desktopDate();
}
else{
tabletDate();
}
}
</script>
的输入的值,我想在其中添加websitemod
的值,其中tab[var][1]
会根据下拉列表中的哪个选项进行动态更改菜单已被选中。但是,每次我放var
时,我都会收到错误(var val = $(this).val(); tab[val][1]
),当我执行Uncaught TypeError: Cannot read property '1' of undefined
时,它会有效。我假设我为var = 12; tab[val][1]
赋值的jQuery函数不起作用。你有什么想法吗?
功能本身:
val
标签,如果您需要:
$(document).ready(function () {
// everytime the dropdown changes
$('select[name=modservmenu]').change(function () {
var val = $(this).val();
// changes the value of the input
$('input[name=websitemod]').val(tab[val][1]);
});
})
编辑:
按照评论中的建议更改了数组,var tab = [
['10', ''],
['4', ''],
['8', ''],
['9', ''],
['11', ''],
['3', ''],
['2', ''],
['1', ''],
['6', ''],
['5', ''],
['7', ''],
['12', 'test.fr'],
];
它确实是我猜的
parseInt
答案 0 :(得分:1)
这里缺少的是,您无法通过单元格单元格的值访问数组的单元格。你的“val”也是一个字符串,但“tab”是一个数组,所以它使用索引,索引是整数。您可以通过它的索引(如array [0])访问数组。所以你对“索引”&lt; - &gt;感到困惑“值”
详细地说,假设您想要获取元素“12”并且您正在访问它,就像数组[12]但它的索引是“11”,因此您可以通过它的索引访问它,如数组[11] - - &GT;给你“[”12“,”test.fr“]”然后你可以使用这个数组对象。样品:
//let's say value is 12
tab["12"] --> null
//let's get the array contains value "12"
tab[11] --> ["12", "test.fr"],
//let's access to "test.fr"
tab[11][1] --> "test.fr"
并且,此null对象索引“1”未定义,因此您收到错误“ Uncaught TypeError:无法读取未定义的属性'1'”
tab["12"][1] //--> Uncaught TypeError: Cannot read property '1' of undefined
您的tab
对象不是地图,因此您无法通过“字符串”值访问它。所以你必须创建一个像下面这样的对象来通过文本索引访问它,之后,你可以访问一个数组索引(你想要的索引):
var tab = {
'10' : ['', ''],
'4': ['', ''],
'8': ['', ''],
'9': ['', ''],
'11': ['', ''],
'3': ['', ''],
'2': ['', ''],
'1': ['', ''],
'6': ['', ''],
'5': ['', ''],
'7': ['', ''],
'12': ['', 'test.fr'],
};
$(document).ready(function () {
// everytime the dropdown changes
$('select[name=modservmenu]').change(function () {
var val = $(this).val();
// changes the value of the input
$('input[name=websitemod]').val(tab[val][1]);
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="modservmenu">
<option>10</option>
<option>12</option>
</select>
<input type="text" name="websitemod"/>
或者,您可以使用您的阵列并像这样搜索:
var tab = [
['10', ''],
['4', ''],
['8', ''],
['9', ''],
['11', ''],
['3', ''],
['2', ''],
['1', ''],
['6', ''],
['5', ''],
['7', ''],
['12', 'test.fr'],
];
$(document).ready(function () {
// everytime the dropdown changes
$('select[name=modservmenu]').change(function () {
var val = $(this).val();
for (var i = 0; i < tab.length; i++) {
if (tab[i][0] == val) {
$('input[name=websitemod]').val(tab[i][1]);
break;
}
}
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="modservmenu">
<option>10</option>
<option>12</option>
</select>
<input type="text" name="websitemod"/>
答案 1 :(得分:1)
在评论中你说:
下拉菜单中使用的值来自数据库中的ID自动递增。目前1至12日。
好的,这意味着I guessed right,您无法使用val
直接索引到tab
数组中。相反,您需要在tab
数组中找到以val
作为第一个参数的条目。幸运的是,数组只有find
:
var entry = tab.find(function(e) { return e[0] == val; });
请注意,Array#find
相对较新,但can be polyfilled on older browser。
var tab = [
['10', ''],
['4', ''],
['8', ''],
['9', ''],
['11', ''],
['3', ''],
['2', ''],
['1', ''],
['6', ''],
['5', ''],
['7', ''],
['12', 'test.fr'],
];
$(document).ready(function() {
// everytime the dropdown changes
$('select[name=modservmenu]').change(function() {
var val = $(this).val();
// changes the value of the input
var entry = tab.find(function(e) { return e[0] == val; });
if (entry) {
$('input[name=websitemod]').val(entry[1]);
}
});
})
<select name="modservmenu">
<option value="2">Two</option>
<option value="12">Twelve</option>
</select>
<input name="websitemod">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 2 :(得分:-4)
你不应该使用&#39; var&#39;作为变量名称,它是javascript中的保留关键字(可能它不在您的脚本中,只在您的帖子中)
检查数组键的类型。
services.AddScoped<IMyInterface, MyService>();
services.AddSingleton<IYourInterface, YourService>();
可能与
不同tab[12][1]
也许你只需要
tab['12'][1]