/**
* Test is form action element
* @param {Object} el
* @return {Boolean} true if a form action element
*/
const isInput = el => /^(?:input|select|textarea|button)$/i.test(el?.nodeName);
// DEMO:
document.querySelectorAll('.foo').forEach(el => console.log(isInput(el)));
5条答案
按热度按时间utugiqy61#
您可以使用
.is(':input')
来测试它是否是任何类型的表单元素。参考文献:
6rvt4ljy2#
使用纯JavaScript:
任何jQuery对象的第一个索引
[0]
将返回其DOM对象。完全用JavaScript实现:06odsfpq3#
在纯JavaScript**中,您可以执行类似Sizzle Engine的操作
示例
https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L139
trnvg8h34#
十年后,
.is(":input")
可能已经不够了,因为input selector选择**[仅]**所有输入、文本区域、选择和按钮元素
但是我们也可以有WebComponents with attached internals,它也可以充当表单字段。
要确定元素是否是表单字段,纯JavaScript将是
...或者,如果你喜欢jQuery,它可以被简化为 awesome conscious extension
...或者,如果你使用ES6+,有一种 * 复杂 * 的编码方式,这很糟糕
我希望我正确地使用了jQuery术语。
jdg4fx2g5#
$('#formid').find('id_element');
jquery find
希望这对你有帮助