将HTML <select>元素保存到变量中而不创建数组

时间:2018-11-13 07:24:25

标签: javascript jquery html

因此,javascript有点像这样: var test = $('#selectelement') console.log(测试) 现在,运行此代码时,test变成包含相应元素的数组。因此,如果要从数组中调用此select元素,则必须编写代码 测试[0] 现在,这当然不是什么大问题,但是我想避免这种情况,因为在这里我不需要数组,因为只有一个元素被保存到该变量中。 那么有什么方法可以避免这种行为,而是创建一个“普通”变量(我知道JS只知道对象,但是至少在语法上它应该像“普通”变量/原始值:D一样)?

3 个答案:

答案 0 :(得分:2)

这是一个数组,因为您返回了一个jquery对象:

 document.getElementById('contents'); //returns a HTML DOM Object
 var contents = $('#contents')//array

您可以将其存储在一行中

 var contents = $('#contents')[0];  //returns a jQuery Object

JavaScript对象的行为类似于关联数组

答案 1 :(得分:0)

使用您已获得的代码返回jquery对象-您可以做的就是获取所选元素的值并将其用于变量。以下代码仅在更改选择列表的选定选项时更新变量并对其进行控制台。

$('#selectelement').on('change',function(){
  var test = $(this).val();
  console.log(test)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="selectelement">Change me </label>
<select id="selectelement">
  <option selected disabled></option>
  <option>option 1</option>
  <option>option 2</option>
  <option>option 3</option>
  <option>option 4</option>
 </select>

答案 2 :(得分:0)

您可以随时使用

var test = ('#selectelement')[0];

或更JQuery的方式

var test = ('#selectelement').get(0);

直接将第一个元素放入变量。 当然,您也可以使用本机函数:

var test = document.querySelector("#selectelement");

这仍将为您提供唯一要素。