Javascript JS在选择列表中选择正确的行
我用这个JS代码来做一些魔术。非常适合获取变量并删除不需要的文本,并在Javascript JS在选择列表中选择正确的行,javascript,Javascript,我用这个JS代码来做一些魔术。非常适合获取变量并删除不需要的文本,并在文本字段中显示正确的文本 中的值2或3或5或7等 因此,我将我的JS代码()更改为: 我知道val是正确的。但是sel只是$i中使用的数字,因此012您正在使用操作符将数字(parseFloat)与进行比较。innerHTML,它始终是字符串 将sel.options[i].innerHTML转换为Number: if (parseFloat(sel.options[i].innerHTML) === val) { sel
文本字段中显示正确的文本
中的值2或3或5或7等
因此,我将我的JS代码()更改为:
我知道val
是正确的。但是sel
只是$i
中使用的数字,因此0
1
2
您正在使用操作符将数字(parseFloat
)与进行比较。innerHTML
,它始终是字符串
将sel.options[i].innerHTML
转换为Number
:
if (parseFloat(sel.options[i].innerHTML) === val) {
sel.selectedIndex = m;
break;
}
如果要过滤掉无效的数字(NaN
s),请使用!isNaN(val)
。您使用运算符将数字(parseFloat
)与.innerHTML
进行比较,后者始终是字符串
将sel.options[i].innerHTML
转换为Number
:
if (parseFloat(sel.options[i].innerHTML) === val) {
sel.selectedIndex = m;
break;
}
如果要过滤掉无效的数字(NaN
s),请使用!isNaN(val)
。要使其正常工作,请编写代码:
function copy_dikte()
{
var i;
var elems = document.getElementsByName('dxf_var_dikte_copy[]');
var elems_1 = document.getElementsByName('dxf_vars[]');
var elems_2 = document.getElementsByName('calc_dikte[]');
var elems_3 = document.getElementsByName('calc_ext[]');
var l = elems.length;
var z;
z=0;
for(i=0; i<l; i++)
{
if(elems_3[i].value == 'dxf')
{
elems[i].value = document.getElementById('dxf_var_dikte').value;
var elems_1_split_1 = (elems_1[i].value).split(elems[i].value+'=');
var elems_1_split_2 = (elems_1_split_1[1]).split(',');
var val = parseFloat(elems_1_split_2[0]);
var sel = elems_2[i];
var opts = sel.options;
for (var opt, j = 0; opt = opts[j]; j++)
{
if (opt.text == val)
{
sel.selectedIndex = j;
break;
}
}
}
}
}
function copy_dikte()
{
var i;
var elems=document.getElementsByName('dxf_var_dikte_copy[]);
var elems_1=document.getElementsByName('dxf_vars[]);
var elems_2=document.getElementsByName('calc_dikte[]);
var elems_3=document.getElementsByName('calc_ext[]);
var l=元素长度;
var z;
z=0;
对于(i=0;i代码,使其工作:
function copy_dikte()
{
var i;
var elems = document.getElementsByName('dxf_var_dikte_copy[]');
var elems_1 = document.getElementsByName('dxf_vars[]');
var elems_2 = document.getElementsByName('calc_dikte[]');
var elems_3 = document.getElementsByName('calc_ext[]');
var l = elems.length;
var z;
z=0;
for(i=0; i<l; i++)
{
if(elems_3[i].value == 'dxf')
{
elems[i].value = document.getElementById('dxf_var_dikte').value;
var elems_1_split_1 = (elems_1[i].value).split(elems[i].value+'=');
var elems_1_split_2 = (elems_1_split_1[1]).split(',');
var val = parseFloat(elems_1_split_2[0]);
var sel = elems_2[i];
var opts = sel.options;
for (var opt, j = 0; opt = opts[j]; j++)
{
if (opt.text == val)
{
sel.selectedIndex = j;
break;
}
}
}
}
}
function copy_dikte()
{
var i;
var elems=document.getElementsByName('dxf_var_dikte_copy[]);
var elems_1=document.getElementsByName('dxf_vars[]);
var elems_2=document.getElementsByName('calc_dikte[]);
var elems_3=document.getElementsByName('calc_ext[]);
var l=元素长度;
var z;
z=0;
对于(i=0;i顺便说一句:您可能可以将val=parseFloat(xx)
替换为val=+xx
,后者更短。顺便说一下:您可能可以将val=parseFloat(xx)
替换为val=+xx
,后者更短。谢谢您的回复。仍然是相同的问题。如果我与您联系的话(var m=0,n=sel.options.length;mc您是否尝试使用parseInt
?float
s是不准确的。有时parseFloat(“1”)
可能导致float(1.00000001)
甚至float(0.999999999)
。如果(parseInt(sel.options[i].innerHTML)*1000==parseInt(val*1000))您可以使用
。如果这不能解决您的问题,请提供一个可执行示例,例如on Is似乎可以根据值elems_2[I]进行设置。value=parseFloat(elems_1_split_2[0]);
但我需要根据文本进行设置。感谢您的回复。仍然是相同的问题。如果我与(var m=0,n=sel.options.length;mc您是否尝试使用parseInt
?float
s是不准确的。有时parseFloat(“1”)
可能导致float(1.00000001)
甚至float(0.999999999)
。如果(parseInt(sel.options[i].innerHTML)*1000==parseInt(val*1000))您可以使用
。如果这不能解决您的问题,请提供一个可执行示例,例如on Is似乎可以根据值elems_2[I]进行设置。value=parseFloat(elems_1_split_2[0]);
但我需要根据文本进行设置。
if (parseFloat(sel.options[i].innerHTML) === val) {
sel.selectedIndex = m;
break;
}
function copy_dikte()
{
var i;
var elems = document.getElementsByName('dxf_var_dikte_copy[]');
var elems_1 = document.getElementsByName('dxf_vars[]');
var elems_2 = document.getElementsByName('calc_dikte[]');
var elems_3 = document.getElementsByName('calc_ext[]');
var l = elems.length;
var z;
z=0;
for(i=0; i<l; i++)
{
if(elems_3[i].value == 'dxf')
{
elems[i].value = document.getElementById('dxf_var_dikte').value;
var elems_1_split_1 = (elems_1[i].value).split(elems[i].value+'=');
var elems_1_split_2 = (elems_1_split_1[1]).split(',');
var val = parseFloat(elems_1_split_2[0]);
var sel = elems_2[i];
var opts = sel.options;
for (var opt, j = 0; opt = opts[j]; j++)
{
if (opt.text == val)
{
sel.selectedIndex = j;
break;
}
}
}
}
}