首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让jQuery选择带有.(句号)在其ID中?

如何让jQuery选择带有.(句号)在其ID中?
EN

Stack Overflow用户
提问于 2008-12-08 17:49:43
回答 6查看 93.8K关注 0票数 179

给定以下类和控制器操作方法:

代码语言:javascript
复制
public School
{
  public Int32 ID { get; set; }
  publig String Name { get; set; }
  public Address Address { get; set; }
}

public class Address
{
  public string Street1 { get; set; }
  public string City { get; set; }
  public String ZipCode { get; set; }
  public String State { get; set; }
  public String Country { get; set; }
}

[Authorize(Roles = "SchoolEditor")]
[AcceptVerbs(HttpVerbs.Post)]
public SchoolResponse Edit(Int32 id, FormCollection form)
{
  School school = GetSchoolFromRepository(id);

  UpdateModel(school, form);

  return new SchoolResponse() { School = school };
}

和以下形式:

代码语言:javascript
复制
<form method="post">
  School: <%= Html.TextBox("Name") %><br />
  Street: <%= Html.TextBox("Address.Street") %><br />
  City:  <%= Html.TextBox("Address.City") %><br />
  Zip Code: <%= Html.TextBox("Address.ZipCode") %><br />
  Sate: <select id="Address.State"></select><br />
  Country: <select id="Address.Country"></select><br />
</form>

我可以更新学校实例和学校的地址成员。这是相当不错的!感谢ASP.NET MVC团队!

但是,如何使用jQuery选择下拉列表,以便可以预先填充它?我意识到我可以在服务器端这样做,但是页面上会有其他影响列表的动态元素。

以下是我到目前为止所拥有的,它不工作,因为选择器似乎与ID不匹配:

代码语言:javascript
复制
$(function() {
  $.getJSON("/Location/GetCountryList", null, function(data) {
    $("#Address.Country").fillSelect(data);
  });
  $("#Address.Country").change(function() {
    $.getJSON("/Location/GetRegionsForCountry", { country: $(this).val() }, function(data) {
      $("#Address.State").fillSelect(data);
    });
  });
});
EN

回答 6

Stack Overflow用户

发布于 2009-03-20 18:35:43

如果id包含空格,则不能使用jQuery id选择器。使用属性选择器:

代码语言:javascript
复制
$('[id=foo bar]').show();

如果可能,还应指定元素类型:

代码语言:javascript
复制
$('div[id=foo bar]').show();
票数 25
EN

Stack Overflow用户

发布于 2014-04-28 19:34:20

使用Jquery将其转义:

代码语言:javascript
复制
function escapeSelector(s){
    return s.replace( /(:|\.|\[|\])/g, "\\$1" );
}

使用示例:

代码语言:javascript
复制
e.find('option[value='+escapeSelector(val)+']')

更多信息here

票数 13
EN

Stack Overflow用户

发布于 2009-01-29 20:57:32

刚刚发布的ASP.NET MVC候选版本修复了这个问题,它现在用ID属性的下划线替换了圆点。

代码语言:javascript
复制
<%= Html.TextBox("Person.FirstName") %>

渲染到

代码语言:javascript
复制
<input type="text" name="Person.FirstName" id="Person_FirstName" />

有关更多信息,请查看从第14页开始的发行说明。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/350292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档