如何在jQuery元素选择器中获取多个名称?

16

我希望将我的脚本应用于多个页面,因此变量应该读取3个名称,而不仅仅是一个;目前它的样子是这样的:

var first;
$(document).ready(function() {
  first = $('[name=body]').val();
});
需要做或 "||" 或与 "&&",以便名称可以是'body','body2'和'body3',取决于页面是什么。 请帮忙。 谢谢大家。
4个回答

28
您可以在选择器中列出多个项目,就像这样:
var body;
$(function() {
   body = $('[name=body], [name=body2], [name=body3]').val();
});

11

为什么不使用属性以某个值开头的选择器 (attribute^="value"),以覆盖所有可能性:

var first;
$(document).ready(function() {
    first = $('[name^="body"]').val();
});

请记住,这将搜索所有具有特定属性/值的元素;因此最好限制浏览器需要执行的工作量,例如通过识别特定的元素类型:

first = $('input[name^="body"]');
此外,由于选择器返回一个数组,因此val()将从选择器返回的第一个匹配元素中获取,它不会返回所有匹配元素的值数组。
参考资料:
- 属性以某个值开头的选择器(attribute^="value"

嗨,感谢您的快速回复,不仅仅是正文,我还有其他名称,比如消息。 - Abude

0

David Thomas的答案是有效的。我只想提一下,如果您想一次获取所有值(例如用于ajax调用),您可以使用serialize函数,它将为您提供一个url编码的字符串,您可以在jQuery的ajax函数或任何其他基于url的函数中使用(例如window.location.href)。

all = $('input[name^="body"]').serialize;

0

检查我的代码片段

$('a[name="' + href + '"]' + ', a[name="' + decodeURIComponent(href) + '"]');

生成的选择器将会是这样的

'a[name="May%2FJune"], a[name="May/June"]"'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接