带有“。”的Jquery选择器。 “_”不起作用

时间:2012-05-15 23:21:15

标签: javascript jquery jquery-selectors

我有这个输入:

<input type="text" name="Latitude" id="Latitude" /> 

然后jquery设置值ok:

$('#Latitude').val(latitude);

但是现在我需要将输入的id更改为RegisterModel_Latitude或RegisterModel.Latitude,所以:

<input type="text" id="RegisterModel_Latitude" />

<input type="text" id="RegisterModel.Latitude" />

但是我无法用jquery设置值......我试过了:

$("#RegisterModel_Latitude").val(latitude);
$("#RegisterModel.Latitude").val(latitude);
$("#RegisterModel\\.Latitude").val(latitude);
$('input[id="RegisterModel_Latitude"]').val(latitude);
$('input[id="RegisterModel.Latitude"]').val(latitude);
$('input[id="RegisterModel\\.Latitude"]').val(latitude);

但这些都不起作用,所以我做错了什么?

4 个答案:

答案 0 :(得分:2)

_是id的有效字符(有关示例,请参阅@ VisioN的jsfiddle。)

.表示一个班级。因此$("#RegisterModel.Latitude")正在寻找标识为RegisterModel且类Latitude的元素。有关示例,请参阅我的@VisioN jsfiddle的分支。

答案 1 :(得分:1)

检查变量纬度(var latitude)可能会丢失

答案 2 :(得分:0)

等待。如果我得到它,你想要更改ID,但你使用的是val而不是attr。为什么不:

$('#Latitude').attr('id','RegisterModel_Latitude');

$('input[name=Latitude]').attr('id','RegisterModel_Latitude');

val会更改值,但不会更改ID。 =)

答案 3 :(得分:0)

我找到解决方案,改变:

@Html.TextBoxFor(m => m.RegisterModel.Address, new { onblur = "codeAddress(RegisterModel_Address.value);" })

为:

<input type="text" id="RegisterModel_Address" onblur="codeAddress(RegisterModel_Address.value)" />

现在正在努力,感谢所有人。