Javascript 使用GET方法选择表单
我下面的代码选择具有POST和GET方法的表单。但是我只想选择带有GET form method属性的表单。如何使用选择器/过滤器仅检索那些将form方法设置为GET的表单元素Javascript 使用GET方法选择表单,javascript,html,forms,Javascript,Html,Forms,我下面的代码选择具有POST和GET方法的表单。但是我只想选择带有GET form method属性的表单。如何使用选择器/过滤器仅检索那些将form方法设置为GET的表单元素 const jsdom = require('jsdom'); const { JSDOM } = jsdom; { const { document } = (new JSDOM(data)).window;
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
{
const {
document
} = (new JSDOM(data)).window;
var all = document.getElementsByTagName("FORM");
for (var i = 0, max = all.length; i < max; i++) {
var aform = document.getElementsByTagName("FORM")[i];
// log aform.outerHTML
}
}
constjsdom=require('jsdom');
const{JSDOM}=JSDOM;
{
常数{
文件
}=(新JSDOM(数据)).window;
var all=document.getElementsByTagName(“表单”);
对于(var i=0,max=all.length;i
let getform=document.querySelectorAll(“form[method=GET]”[0]。id;
console.log(getform)
让postform=document.querySelectorAll(“form[method=POST]”[0].id;
console.log(postform)
让省略的表单=document.queryselectoral(“表单”)[2];
if(!electronic.getAttribute(“method”)){
console.log(省略.id)
}
[…document.queryselectoral(“表单”)].forEach(表单=>{
如果(!form.getAttribute(“方法”)| form.getAttribute(“方法”)=“GET”){
console.log(“id为“+Form.id+”为GET的表单”)
}else if(form.getAttribute(“方法”)=“POST”){
console.log(“id为“+Form.id+”的表单为POST”)
}
});代码>
名字:
姓氏:
名字:
姓氏:
名字:
姓氏:
您可以使用javascript变量来实现,该变量在表单方法之间切换
let formMethod = undefined
let getForms = document.querySelectorAll(`form[method=${formMethod || 'GET'}]`)
formMethod = "POST"
let postForms = let forms = document.querySelectorAll(`form[method=${formMethod || 'GET'}]`)
你也可以用一个函数来实现
function findForms(method) {
return document.querySelectorAll(`form[method=${method || 'GET'}]`)
}
let postForms = getForms("POST")
let getForms = getForms("GET")
let firstGetForm = getForms[0]
let firstGetFormId = firstGetForm.id
let secondGetForm = getForms[1]
let secondGetFormId = secondGetForm.id
您可以使用querySelectorAll
来匹配比元素类型更复杂的规则
类型选择器可以按表单过滤,然后属性选择器可以检查方法
属性
您需要小心,因为GET是默认值,所以您需要测试完全没有方法
属性(使用:not()
伪类)并且设置为GET
const get_forms=document.queryselectoral(“form:not([method]),form[method='get']))
console.log(get_forms.length+“匹配表单”)代码>
您忘记了省略方法
属性的情况。GET是默认值。这将只适用于:表单:not([method=POST])
。这一点很好。这会更简单。