我想在多个页面上应用我的脚本,因此var应该读取3个名称,而不仅仅是一个; 这就是它现在的样子:
var first;
$(document).ready(function() {
first = $('[name=body]').val();
});
需要做一个或“||”或者和“&&”一些名称可能是'body','body2'和'body3',取决于它是什么页面。 请帮忙
全心全意,
答案 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;