Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 将函数参数用作变量调用_Javascript_Jquery - Fatal编程技术网

Javascript 将函数参数用作变量调用

Javascript 将函数参数用作变量调用,javascript,jquery,Javascript,Jquery,标题中已经描述了什么,但基本上我想发送一个函数perime并使用它调用三个不同变量中的一个。另外,为了避免误解代码的“$('#'+id)”部分,我需要的只是“id=”部分的正确语法(如果可能的话)。我知道有一个解决办法,但我正在尝试最小化代码,这似乎是最理想的解决方案 我的代码: <div class="one"> <p>ime:</p> <input type="text" id="na

标题中已经描述了什么,但基本上我想发送一个函数perime并使用它调用三个不同变量中的一个。另外,为了避免误解代码的“$('#'+id)”部分,我需要的只是“id=”部分的正确语法(如果可能的话)。我知道有一个解决办法,但我正在尝试最小化代码,这似乎是最理想的解决方案

我的代码:

<div class="one">
    <p>ime:</p>
    <input type="text" id="name">
    <p>kraj:</p>
    <input type="text" id="city">
    <p>starost:</p>
    <input type="text" id="age">
    <p id="one_output"></p>
</div>

如果要最小化代码,可以从以下操作开始:

id = $(`#${id}`).val();
与此相反:

id = $('#'+id+'').val();
将keyup回调修改为更清晰的代码:

$('.one input[type="text"]').keyup(function() {
    var myId = $(this).attr("id"));
    var id = $('#'+myId+'').val();
    $("#one_output").text("Sem " + name + " in živim v " + city + ". Star 
    sem " + 
     age);

});

好吧,我想我终于明白你的意思了

因此,您要传递一个变量名,并希望动态调用它,而不是使用
this
,采用
global
的方式,例如,我建议您将所有变量放在一个全局变量中

var formInputs = { name: '1', city: '2', age: '3' }
然后您可以使用
formInputs[var\u name\u here]

所以你的例子,可以写成

var formInputs = { name: '1', city: '2', age: '3' }

function statement(name, val) {
    formInputs[name] = val
    var txt = `Sem ${formInputs.name} in živim v ${formInputs.city}. Star sem ${formInputs.age}`
    $("#one_output").text(txt)
}

$('.one input[type="text"]').keyup(function() {
    var elm = $(this)
    statement(elm.attr("id"), elm.val())
})
var formInputs={name:'…',city:'…',age:'…}
var语句=函数(名称,val){
formInputs[name]=val//为变量赋值
var txt=`Sem${formInputs.name}inživim v${formInputs.city}.Star Sem${formInputs.age}`//新文本
$(“#一个输出”).html(txt)//输出
}
$('.one输入[type=“text”]').keyup(函数(){
var elm=$(this)//我们的关键元素
语句(elm.attr(“id”),elm.val()//传递id,为什么不传递值,这样我们就不再需要元素了
})

输入法:

克拉吉:

starost:


为了避免混淆,您的意思是“参数”,对吗#1在函数
语句中,您根本没有使用
id
。#2开关和
id
可以简单地写为
语句($(this).attr('id'))
,然后删除开关和
id
行completely@balexandre我已经为你的第二点更新了代码,但是为你的第一点更新了代码。我在jquery调用中使用id($(“#”+id)),但我也想使用它调用javascrip代码第1-3行中定义的变量,我希望通过使html元素id与javascrip变量相同来实现这一点
var formInputs = { name: '1', city: '2', age: '3' }

function statement(name, val) {
    formInputs[name] = val
    var txt = `Sem ${formInputs.name} in živim v ${formInputs.city}. Star sem ${formInputs.age}`
    $("#one_output").text(txt)
}

$('.one input[type="text"]').keyup(function() {
    var elm = $(this)
    statement(elm.attr("id"), elm.val())
})