我想在多个页面上应用我的脚本,所以 var 应该读取 3 个名称而不仅仅是一个;这是现在的样子:
var first;
$(document).ready(function() {
first = $('[name=body]').val();
});
需要做一个或“||”或一个和“&&”,所以名称可能是'body','body2'和'body3',取决于它是什么页面。请帮忙
谢谢大家,
我想在多个页面上应用我的脚本,所以 var 应该读取 3 个名称而不仅仅是一个;这是现在的样子:
var first;
$(document).ready(function() {
first = $('[name=body]').val();
});
需要做一个或“||”或一个和“&&”,所以名称可能是'body','body2'和'body3',取决于它是什么页面。请帮忙
谢谢大家,
您可以在选择器中列出多个项目,如下所示:
var body;
$(function() {
body = $('[name=body], [name=body2], [name=body3]').val();
});
为什么不使用 attribute-starts-with 选择器 ( attribute^="value"
) 涵盖所有可能性:
var first;
$(document).ready(function() {
first = $('[name^="body"]').val();
});
请记住,这将在所有元素中搜索该特定属性/值;所以最好限制浏览器必须做的工作量,例如通过识别特定的元素类型:
first = $('input[name^="body"]');
此外,由于选择器返回一个数组,该数组val()
将从选择器返回的第一个匹配元素中获取,它不会返回所有匹配元素的值的数组。
参考:
检查我的片段
$('a[name="' + href + '"]' + ', a[name="' + decodeURIComponent(href) + '"]');
生成的selector
会像
'a[name="May%2FJune"], a[name="May/June"]"'
大卫托马斯回答有效。我只想提一下,如果您希望 tp 一次获取所有值(例如,对于 ajax 调用),您可以使用 serialize 函数,该函数将为您提供一个 urlencoded 字符串,您可以在 jQuery 或任何其他基于 url 的 ajax 函数中使用该字符串函数(例如 window.location.href)
all = $('input[name^="body"]').serialize;