如何在 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"]')
【讨论】:
你可以,但是你会错过select
和textarea
元素。以上是关于如何在 jQuery 中选择具有 name 属性的元素? [复制]的主要内容,如果未能解决你的问题,请参考以下文章