16

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

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

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

谢谢大家,

4

4 回答 4

28

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

var body;
$(function() {
   body = $('[name=body], [name=body2], [name=body3]').val();
});
于 2012-06-05T09:38:32.890 回答
11

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

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

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

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

此外,由于选择器返回一个数组,该数组val()将从选择器返回的第一个匹配元素中获取,它不会返回所有匹配元素的值的数组。

参考:

于 2012-06-05T09:35:45.930 回答
0

检查我的片段

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

生成的selector会像

'a[name="May%2FJune"], a[name="May/June"]"'
于 2017-04-06T09:32:21.053 回答
0

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

all = $('input[name^="body"]').serialize;
于 2019-02-19T16:06:08.523 回答