标签: jquery-selectors

使用jquery获取具有特定类名的所有选中复选框

我知道我可以使用以下方法在页面上获得所有选中的复选框:

$('input[type=checkbox]').each(function () {
    var sThisVal = (this.checked ? $(this).val() : "");
});
Run Code Online (Sandbox Code Playgroud)

但我现在在一个页面上使用它,这个页面上有一些我不想包含的其他复选框.如何将上面的代码更改为仅查看具有特定类的复选框?

checkbox jquery jquery-selectors

200
推荐指数
11
解决办法
34万
查看次数

jquery数据选择器

我需要根据存储在元素.data()对象中的值来选择元素.至少,我想使用选择器选择顶级数据属性,可能是这样的:

$('a').data("category","music");
$('a:data(category=music)');
Run Code Online (Sandbox Code Playgroud)

或者选择器可能采用常规属性选择器格式:

$('a[category=music]');
Run Code Online (Sandbox Code Playgroud)

或者以属性格式,但使用说明符指示它在.data():

$('a[:category=music]');
Run Code Online (Sandbox Code Playgroud)

我发现James Padolsey的实现看起来很简单,但很好.选择器格式化在该页面上显示的镜像方法.还有这个Sizzle补丁.

出于某种原因,我记得有一段时间回顾jQuery 1.4将包含对jquery .data()对象中值的选择器的支持.但是,现在我正在寻找它,我找不到它.也许这只是我看到的一个功能请求.是否有支持,我只是没有看到它?

理想情况下,我想使用点表示法支持data()中的子属性.像这样:

$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
Run Code Online (Sandbox Code Playgroud)

我还想支持多个数据选择器,其中只找到具有所有指定数据选择器的元素.常规jquery多选择器执行OR操作.例如,$('a.big, a.small')选择a带有类big或标签的标签small.我正在寻找一个AND,也许是这样的:

$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
Run Code Online (Sandbox Code Playgroud)

最后,如果数据选择器上有比较运算符和正则表达式功能,那将会很棒.所以$(a[:artist.id>5000])可能.我意识到我可能会做很多这样的事情filter(),但是有一个简单的选择器格式会很好.

有什么解决方案可以做到这一点?Jame的Padolsey是目前最好的解决方案吗?我主要关注的是性能,还有子属性点符号和多数据选择器等额外功能.是否有其他实现支持这些内容或以某种方式更好?

jquery jquery-selectors

183
推荐指数
8
解决办法
14万
查看次数

使用jQuery获取第二个孩子

$(t).html()
Run Code Online (Sandbox Code Playgroud)

回报

<td>test1</td><td>test2</td>
Run Code Online (Sandbox Code Playgroud)

我想td$(t)对象中检索第二个.我搜索了一个解决方案,但没有任何对我有用.知道如何获得第二个元素吗?

jquery jquery-selectors

178
推荐指数
6
解决办法
25万
查看次数

jQuery选择器,用于name属性中带方括号的输入

我正在尝试选择name属性中带方括号的元素:

<input type="text" name="inputName[]" value="someValue">
Run Code Online (Sandbox Code Playgroud)

我试过这个(这不起作用):

$('input[inputName[]=someValue]')
Run Code Online (Sandbox Code Playgroud)

这两个都没有:

$('input[inputName&#91;&#93;=someValue]')
Run Code Online (Sandbox Code Playgroud)

或这个:

$('input["inputName[]"=someValue]')
Run Code Online (Sandbox Code Playgroud)

编辑:正如你们有些人指出的那样,$('input[inputName=someValue]')永远不会奏效.我想做的是:$('input[name=inputName][value=someValue]').(但[]在name属性中).

javascript jquery input jquery-selectors

175
推荐指数
4
解决办法
10万
查看次数

使用jQuery计算立即子div元素

我有以下HTML节点结构:

<div id="foo">
  <div id="bar"></div>
  <div id="baz">
    <div id="biz"></div>
  </div>
  <span></span>
</div>
Run Code Online (Sandbox Code Playgroud)

我如何计算foo类型的直系子女的数量div?在上面的例子中,结果应该是两个(barbaz).

javascript jquery dom jquery-selectors

173
推荐指数
8
解决办法
28万
查看次数

如何让jQuery选择带有的元素.(期间)他们的身份证?

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

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 = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-selectors

171
推荐指数
5
解决办法
9万
查看次数

jQuery:同时选择一个元素的类和id?

我有一些链接,我想同时选择类和id.

这是因为我有两种不同的行为.当一类链接获得一个类名时,它们以一种方式运行,当相同的链接段获得另一个类名时,它们的行为会有所不同.类名是用jquery切换的.

所以我必须能够同时选择一个链接类AND id.这可能吗?

我试过了:

 $("a .save #country")
Run Code Online (Sandbox Code Playgroud)

没有任何结果.

jquery dom css-selectors jquery-selectors

162
推荐指数
3
解决办法
26万
查看次数

是应该将所有jquery事件绑定到$(文档)?

这是来自哪里

当我第一次学习jQuery时,我通常会附加这样的事件:

$('.my-widget a').click(function() {
    $(this).toggleClass('active');
});
Run Code Online (Sandbox Code Playgroud)

在了解了有关选择器速度和事件委托的更多信息之后,我在几个地方读到"jQuery事件委托将使您的代码更快".所以我开始编写这样的代码:

$('.my-widget').on('click','a',function() {
    $(this).toggleClass('active');
});
Run Code Online (Sandbox Code Playgroud)

这也是复制已弃用的.live()事件行为的推荐方法.这对我很重要,因为我的很多网站都在动态添加/删除小部件.上面的行为与.live()的行为完全不同,因为只有添加到现有容器".my-widget"的元素才会获得行为.如果我在代码运行后动态添加另一个html块,那么这些元素将不会获取绑定到它们的事件.像这样:

setTimeout(function() {
    $('body').append('<div class="my-widget"><a>Click does nothing</a></div>');
}, 1000);
Run Code Online (Sandbox Code Playgroud)


我想要实现的目标:

  1. .live()的旧行为//意味着将事件附加到尚未存在的元素
  2. .on()的好处
  3. 绑定事件的最快性能
  4. 管理事件的简单方法

我现在附上所有这样的事件:

$(document).on('click.my-widget-namespace', '.my-widget a', function() {
    $(this).toggleClass('active');
});
Run Code Online (Sandbox Code Playgroud)

这似乎符合我的所有目标.(是的,因为某种原因它在IE中速度较慢,不知道为什么?)它很快,因为只有一个事件与单个元素相关联,而二级选择器仅在事件发生时进行评估(如果这里错误,请纠正我).命名空间非常棒,因为它可以更容易地切换事件监听器.

我的解决方案/问题

所以我开始认为jQuery事件应该始终绑定到$(document).
你有什么理由不想这样做吗?
这可算是最佳做法吗?如果没有,为什么?

如果您已经阅读了这一切,谢谢.我感谢任何/所有反馈/见解.

假设:

  1. 使用支持.on()//至少1.7版的jQuery
  2. 您希望将事件添加到动态添加的内容中

读数/例子:

  1. http://24ways.org/2011/your-jquery-now-with-less-suck
  2. http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery
  3. http://www.jasonbuckboyer.com/playground/speed/speed.html
  4. http://api.jquery.com/on/

javascript jquery jquery-selectors jquery-on

157
推荐指数
2
解决办法
3万
查看次数

jQuery hasClass() - 检查多个类

附:

if(element.hasClass("class"))
Run Code Online (Sandbox Code Playgroud)

我可以检查一个类,但有一个简单的方法来检查"元素"是否有任何类?

我在用:

if(element.hasClass("class") || element.hasClass("class") ... )
Run Code Online (Sandbox Code Playgroud)

这不是太糟糕,但我想的是:

if(element.hasClass("class", "class2")
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不起作用.

有类似的东西吗?

performance jquery jquery-selectors

153
推荐指数
5
解决办法
14万
查看次数

通过其内容的完全匹配选择元素

好吧,我想知道是否有办法让:contains()jQuery的选择器选择只有输入字符串的元素

例如 -

<p>hello</p>
<p>hello world</p>

$('p:contains("hello")').css('font-weight', 'bold');
Run Code Online (Sandbox Code Playgroud)

选择器将选择两个p元素并使它们变为粗体,但我希望它只选择第一个元素.

jquery jquery-selectors

151
推荐指数
5
解决办法
10万
查看次数