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

时间:2012-06-05 09:34:07

标签: jquery

我想在多个页面上应用我的脚本,因此var应该读取3个名称,而不仅仅是一个; 这就是它现在的样子:

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

需要做一个或“||”或者和“&&”一些名称可能是'body','body2'和'body3',取决于它是什么页面。 请帮忙

全心全意,

4 个答案:

答案 0 :(得分:19)

您可以在选择器中列出多个项目,如下所示:

var body;
$(function() {
   body = $('[name=body], [name=body2], [name=body3]').val();
});

答案 1 :(得分:10)

为什么不使用attribute-starts-with选择器(attribute^="value")来涵盖所有可能性:

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

请记住,这将搜索该特定属性/值的所有元素;所以最好限制浏览器必须做的工作量,例如通过识别特定的元素类型:

first = $('input[name^="body"]');

此外,当选择器返回一个数组时,val()将取自选择器返回的第一个匹配元素,它不会返回所有值的数组。匹配的元素。

参考文献:

答案 2 :(得分:0)

检查我的代码段

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

,生成的selector就像

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

答案 3 :(得分:0)

大卫·托马斯(David Thomas)回答有效。我只想提及一下,如果您希望tp一次获取所有值(例如,对于ajax调用),则可以使用serialize函数,该函数将为您提供urlencoded字符串,您可以在jQuery或任何其他基于url的ajax函数中使用该字符串功能(例如window.location.href)

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