迭代按名称选择对象

时间:2013-01-27 14:54:31

标签: javascript jquery html

您好我已经关注了Select对象:

<select id="additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears" name="additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears" 
class="w-65 me2-casco-claims-last-years">
 <option value="">-- choose--</option>
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3 and more</option>
</select>

当我尝试通过jQuery获取此对象时

$('additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears');

或     $( '选择#additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears');

我正在[] ..

所以我试着从名字中得到它:

var select = $("select[name='additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears']")

这是可行的,我在选择变量

中选择了对象

接下来我需要迭代每个选项,所以我试图让选项集合迭代但是

select.options or     
        $("select[name='additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears']").options

给我未定义.. 我不知道如何迭代我的选择中的每个选项元素,我不知道它发生了什么,因为我的元素ID有逗号“。” ?我无法修改名称,因为它是由spring自动生成的,必须以正确的名称发布到服务器;

3 个答案:

答案 0 :(得分:3)

试试这个:

$("#additionalDataForm\\.motoForm\\.cascoForm\\.ownerClaims\\.claimsLastYears options")

.中的id,给jQuery的印象是它不是类选择器。要告诉jQuery不要将它视为类选择器,你需要逃避这些点。

答案 1 :(得分:1)

使用:

$("select[name='additionalDataForm.motoForm.cascoForm.ownerClaims.claimsLastYears']")[0].options

答案 2 :(得分:1)

使用具有复杂名称的ID选择元素的另一种方法是使用本机JavaScript DOM方法:

$("option", document.getElementById("additionalDataForm.motoForm.cascoForm ..."))
   .each(function() {
      // ...
   });

DEMO: http://jsfiddle.net/xF9qt/