如何使用jQuery属性选择器选择多个元素

如何使用jQuery属性选择器选择多个元素,jquery,jquery-selectors,Jquery,Jquery Selectors,我想选择两个元素 <input id="iMe" /> and <span id="sMe">Blah</span> 在一个选择器中。我试过: $("span,input[id$='Me']") -> Nope $("span[id$='Me'],input[id$='Me']") -> Nope $("span[id$='Me']input[id$='Me']") -> Nope 我也不介意把它加入收藏。我绝对不想创建更多的脚本来破解这

我想选择两个元素

<input id="iMe" /> and <span id="sMe">Blah</span>
在一个选择器中。我试过:

$("span,input[id$='Me']") -> Nope
$("span[id$='Me'],input[id$='Me']") -> Nope
$("span[id$='Me']input[id$='Me']") -> Nope

我也不介意把它加入收藏。我绝对不想创建更多的脚本来破解这个问题。有什么想法吗?

为什么不给这两个元素上课呢

$('span[id$=Me]').add('input[id$=Me]')
<input class="frobbable" id="iMe" /> and <span class="frobbable" id="sMe">Blah</span>

为什么不给这两个元素一个类呢

<input class="frobbable" id="iMe" /> and <span class="frobbable" id="sMe">Blah</span>

示例页面:查看/编辑源代码

以下变更应全部适用:

$("span[id$=Me], input[id$=Me]")
$('span[id$=Me], input[id$=Me]')
$("span[id$='Me'], input[id$='Me']")
$('span[id$="Me"], input[id$="Me"]')
编辑:下面的原始答案是错误的;引号是可选的,但允许

你在尝试中引用了太多的话。。。你想要

$("span[id$=Me],input[id$=Me]")
css选择器中不引用属性值。

示例页面:查看/编辑源代码

以下变更应全部适用:

$("span[id$=Me], input[id$=Me]")
$('span[id$=Me], input[id$=Me]')
$("span[id$='Me'], input[id$='Me']")
$('span[id$="Me"], input[id$="Me"]')
编辑:下面的原始答案是错误的;引号是可选的,但允许

你在尝试中引用了太多的话。。。你想要

$("span[id$=Me],input[id$=Me]")
css选择器中不引用属性值

应该有用。但是要注意性能,因为这必须贯穿整个DOM

$("span[id$='Me'],input[id$='Me']") -> Yep
应该有用。但是要注意性能,因为这必须贯穿整个DOM

$("span[id$='Me'],input[id$='Me']") -> Yep
这应该和add方法一样有效,所以你可能在其他地方遇到了问题?也许是jQuery的一些古老版本



这应该和add方法一样有效,所以你可能在其他地方遇到了问题?也许是jQuery的一些古老版本?

asp.net所以我要匹配端点,这就是为什么我有一个属性selectorasp.net所以我要匹配端点,这就是为什么我有一个属性selectorTried$span[id$='Me'].addinput[id$='Me'];引发js错误。整行:$component=$span[id$=Me]。addinput[id$=Me];no dicemy answer和$'span[id$=Me],input[id$=Me]'都适用于示例代码。您在问题中遗漏了一些内容是否忘记包含jquery脚本库?尝试了$span[id$='Me']。添加输入[id$='Me'];引发js错误。整行:$component=$span[id$=Me]。addinput[id$=Me];no dicemy answer和$'span[id$=Me],input[id$=Me]'都适用于示例代码。您在问题中遗漏了一些内容您是否忘记包含jquery脚本库?糟糕,asp.net隐藏字段没有cssClass属性。耶!:嗯,我不知道asp.net是什么,但是如果它是对您隐藏HTML的东西,它就被设计破坏了。我不确定这可能是错误,但它不适用于。在上,事件委托仅第一个选定的元素。糟糕,asp.net隐藏字段没有cssClass属性。耶!:嗯,我不知道asp.net是什么,但如果它是对您隐藏HTML的东西,它就被设计破坏了。我不确定这可能是错误,但它不适用于。在上,事件委托只适用于第一个选定的元素。$span[id$=Me],input[id$=Me];抛出一个错误…多么愚蠢。我相信你,我只是搞不懂它为什么会抛出错误。对方法或属性访问的意外调用。仅供参考:从jQuery文档中,引号在大多数情况下是可选的,但当值包含字符(如“])时,应使用引号来避免冲突。所以我认为引号没有起作用。我看到的错误不是选择器,而是稍后试图设置两个引号的文本。@rball:是的,在你指出之前不久,我阅读了引号的文档。。。我以前从未使用过它们,但我知道哪里可能需要它们。至于您的问题,如果您试图使用$.text方法设置文本,那可能是您的问题;我想你还没有检查过文本输入控件应该使用$.value…$span[id$=Me],input[id$=Me];抛出一个错误…多么愚蠢。我相信你,我只是搞不懂它为什么会抛出错误。对方法或属性访问的意外调用。仅供参考:从jQuery文档中,引号在大多数情况下是可选的,但当值包含字符(如“])时,应使用引号来避免冲突。所以我认为引号没有起作用。我看到的错误不是选择器,而是稍后试图设置两个引号的文本。@rball:是的,在你指出之前不久,我阅读了引号的文档。。。我以前从未使用过它们,但我知道哪里可能需要它们。至于您的问题,如果您试图使用$.text方法设置文本,那可能是您的问题;我想你还没有检查过文本输入控件是否应该使用$.value…试过了,它确实冻结了浏览器。还尝试了*[id$=Me]。看起来您的DOM太复杂了。尝试从一个具有id选择器的父级开始,比如-$parentDiv.find[id$='Me']很少有提示尝试过,它会冻结浏览器。还尝试了*[id$=Me]。看起来您的DOM太复杂了。尝试使用id选择器从父级开始,比如-$parentDiv.find[id$='Me']一些提示