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

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

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

【问题讨论】:

  • 我误解了你的问题是指 tag names 而不是 name 属性,并继续进行后空翻。

标签: javascript jquery


【解决方案1】:
$('[name="ElementNameHere"]').doStuff();

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

查看更多

【讨论】:

【解决方案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元素。
    猜你喜欢
    • 2010-11-02
    • 2012-02-12
    • 2010-12-18
    • 1970-01-01
    • 2014-08-31
    • 2011-10-13
    • 1970-01-01
    • 2013-07-09
    相关资源
    最近更新 更多