Jquery:根据<select>属性

时间:2015-12-17 11:22:52

标签: javascript jquery forms select

我正在尝试编写一个简单的jquery脚本,它将遍历所有&lt; select&gt;页面上的元素,并选取一个名为selected的属性,并根据该属性设置选项值。 例: &lt; select selected =“2”&gt;   &lt; option value =“1”&gt; One&lt; / option&gt;   &lt; option value =“2”&gt;两个&lt; / option&gt;   &lt; option value =“3”&gt; Three&lt; / option&gt; &LT; /选择&GT; 在上面的示例中,代码将选项“2”设置为选中。 写这个最干净的方法是什么? 编辑: 为了澄清,我的问题和上面的例子的主要问题是我使用保留关键字'selected'。我建议使用另一个属性名称(我改变了我的数据选择,这甚至适用于html5-spec :-))。 &lt; select data-selected =“2”&gt;   &lt; option value =“1”&gt; One&lt; / option&gt;   &lt; option value =“2”&gt;两个&lt; / option&gt;   &lt; option value =“3”&gt; Three&lt; / option&gt; &LT; /选择&GT;

4 个答案:

答案 0 :(得分:2)

selected是保留的财产。无论你设置什么,jQuery都会将其值返回为“selected”。

相反,您可以直接访问DOM attributes集合,如下所示:

$('select[selected]').val(function() {
  return this.attributes.selected.value;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select selected="1">
  <option value="1">One</option>  
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<select selected="2">
  <option value="1">One</option>  
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<select selected="3">
  <option value="1">One</option>  
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

答案 1 :(得分:1)

options具有selected个属性。您不能在selected元素上拥有select属性。您可以拥有数据属性或名称。

$('select[data-selected="1"]')

$('select[name="1"]')

要获取值为1的选项,您只需执行并向其添加所选属性:

$('select[data-selected="1"] option[value="1"]').attr('selected', 'selected');

DEMO

答案 2 :(得分:0)

如其他答案中所述,import pandas as pd df1 = pd.DataFrame({'Name' : ['A','B','C'], 'Country' : ['US','UK','SL']}) df2 = pd.DataFrame.from_csv('mycsv.csv', index_col=None) df_merge = pd.merge(df, f, how="left", on="Name") df_merge["Extended"].fillna('Name', inplace=True) 是保留关键字。

调整你的HTML,现在正在运行:

selected

答案 3 :(得分:0)

这是我最终结束的代码。它有一个额外的东西,其他解决方案没有,检查属性可用性。如果缺少该属性,其他解决方案会将选择字段设置为空白(即使没有可用的空白选项)。

$("select").each(function() {
   var selected_val = $(this).attr("data-selected");
   if(selected_val)
      $(this).val(selected_val);
});