如何在 jQuery 中选择具有 name 属性的元素? [复制]

Posted

技术标签:

【中文标题】如何在 jQuery 中选择具有 name 属性的元素? [复制]【英文标题】:How do I select an element with its name attribute in jQuery? [duplicate] 【发布时间】:2012-03-29 14:49:57 【问题描述】:

如何使用 jQuery 获取具有 name 属性的元素?

在 jQuery 中是否有任何名称(例如 # 用于 id 和 . 用于类)?

【问题讨论】:

我误解了你的问题是指 tag names 而不是 name 属性,并继续进行后空翻。 【参考方案1】:
$('[name="ElementNameHere"]').doStuff();

jQuery 支持 CSS3 样式选择器,还有更多。

查看更多

jQuery - Selectors jQuery - [attribute=""] selector

【讨论】:

更具体的文档页面:api.jquery.com/attribute-equals-selector 这是世界上最好的答案。这个网站不让我奖励它是愚蠢的:(【参考方案2】:

你可以使用:

jQuery('[name="' + nameAttributeValue + '"]');

不过,这将是一种低效的选择元素的方式,因此最好也使用标签名称或将搜索限制为特定元素:

jQuery('div[name="' + nameAttributeValue + '"]'); // with tag name
jQuery('div[name="' + nameAttributeValue + '"]',
     document.getElementById('searcharea'));      // with a search base

【讨论】:

选择器通常从右到左工作,这意味着无论元素如何,它仍然会先搜索名称,然后搜索元素。因此,您的扩展答案几乎没有肉。但是,很好的答案:) 非常正确 - 更重要的是包含上下文,没有 querySelectorAll 或 getElementsByName(使用 name 属性的特殊情况)的浏览器会在嘶嘶声中使用 getElementsByTagname('*') 使其更好使用 jQuery('#container').find('[name=someName]') 而不仅仅是 jQuery('[name=someName]') - 鉴于浏览器对 getElementsByName 的支持,它可能并不那么重要 如何按类获取元素? 使用.classname - 示例可以在MDN Documentation中找到【参考方案3】:

取名字很简单:

$('[name=elementname]');

资源:

http://www.electrictoolbox.com/jquery-form-elements-by-name/(谷歌搜索:通过名称 jQuery 获取元素 - 第一个结果)

【讨论】:

【参考方案4】:
jQuery("[name='test']") 

虽然你应该避免它,并且如果可能的话,通过 ID 选择(例如#myId),因为它具有更好的性能,因为它调用了本机 getElementById

【讨论】:

是的,但这并不总是可能的......从问题中推断,OP 已经知道如何通过 ID 或类名进行选择。 我只想指出,使用这种选择器比较重。【参考方案5】:

你总是可以做到$('input[name="somename"]')

【讨论】:

你可以,但是你会错过selecttextarea元素。

以上是关于如何在 jQuery 中选择具有 name 属性的元素? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

具有以字符串开头的属性的元素的 jQuery 选择器

jQuery:如何选择具有包含 x 属性的子元素或元素?

如何使用jQuery在某些特定div中选择具有相同名称的所有元素[重复]

jquery属性选择器

XMLNODE:如何在我的 xml 中选择具有属性的此节点

jQuery 选择器可以选择所有具有“onclick”属性的元素吗?