$('#id')和$(“#'+” id“ +'”)之间的区别

时间:2018-09-06 12:49:57

标签: jquery

我正在尝试找出$('#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规则,或者在任何地方都可以回答此问题?还是你们在第一次投票后就盲目了?请让我知道

1 个答案:

答案 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

的元素