Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS在选择列表中选择正确的行_Javascript - Fatal编程技术网

Javascript 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

我用这个JS代码来做一些魔术。非常适合获取变量并删除不需要的文本,并在
文本字段中显示正确的文本

中的值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;
                }
            }
        }
    }
}