我正在尝试找出$('#id1')
和'@$("#' + "id1" + '")'
之间的区别
var DA_input1 = $('#id1');
var DA_input2 = '@$("#' + "id1" + '")';
$("#test1").click(function(){
alert(DA_input1.val());
});
$("#test2").click(function(){
alert(DA_input2.val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input data-target="datable" id='id1' value="50">
<br>
<button id="test1">test1</button>
<button id="test2">test1</button>
使用$('#id1')
可以正确获取值,但是使用'@$("#' + "id1" + '")'
控制台将错误返回为DA_input2.val is not a function
请帮助
我们可以将字符串(DA_input2)转换为对象吗? (如DA_input1)
PS: 对此表示反对的人,请说明原因。我违反了任何Stackoverflow规则,或者在任何地方都可以回答此问题?还是你们在第一次投票后就盲目了?请让我知道
答案 0 :(得分:1)
// JQuery evaluation of a selector
var DA_input1 = $('#id1');
// Simple string
var DA_input2 = '@$("#' + "id1" + '")';
如果您想在变量中指定ID并让JQuery评估变量中的字符串,则可以执行以下操作:
var selector = '#id1';
var $input = $(selector);
请注意,我将变量命名为selector
,因为它可以是任何CSS选择器,
例如:
var selector = '.classNameHere';
它将选择所有具有类classNameHere