是否有一个函数或技巧如何从页面获取所有可写元素?
可写元素例如:输入,区域等。
如果没有,你可以为我制作所有可写元素的列表吗?
然后,我可以使用document.getElementsByTagName('input')
请不要jQuery。
答案 0 :(得分:0)
使用一行代码无法轻松获取它们,但如果HTML属于您并且您可以对其进行修改,则可以为所有元素添加类writable
你想要的,然后你可以这样做:
document.getElementsByClassName("writable");
答案 1 :(得分:0)
如果您指的是表单内的输入数量,可以使用:
import Vue from 'vue'
import Quasar, * as All from 'quasar'
import router from './router'
import store from './store/index.js'
Quasar.start(() => {
new Vue({
el: '#app',
router,
store,
render: h => h(require('./App'))
})
})
答案 2 :(得分:0)
创建一个函数,逐个检查所有可写元素,如input
,textarea
并执行操作。
以下是可用于选择可写元素并执行操作的示例代码
function returnWritableEmenent() {
var welement = ['input', 'textarea'];
welement.map(function( ele) {
var allele = document.getElementsByTagName(ele);
for (var i=0, max=all.length; i < max; i++) {
// Do something with the element here
}
});
}
您也可以改善这一点,但这只是一个开始。希望它有所帮助
答案 3 :(得分:0)
您可以声明一个数组并将值设置为您认为的值#34;可写&#34;元素。然后简单地循环元素并检查它们的类型是否与列表中的元素匹配。然后该函数返回一个包含所有元素的数组。像这样:
var WRITEABLE_ELEMENT_TYPES = ['text', 'textarea'];
var getWritableElements = function() {
var writableElements = [];
var forms = document.getElementsByTagName('form');
for (let i = 0; i < forms[0].children.length; i++) {
let element = forms[0].children[i];
if (WRITEABLE_ELEMENT_TYPES.indexOf(element.type) > -1) {
writableElements.push(element);
}
}
return writableElements;
}
console.log(getWritableElements());
&#13;
<form>
<input type="text" id="txtField" /><br/><br/>
<textarea rows="4" cols="50"></textarea>
</form>
&#13;
显然,您可以修改此代码,使其按您需要的方式运行。
答案 4 :(得分:0)
在纯JavaScript中,您可以使用document.querySelectorAll()
获取与您选择的选择器匹配的元素列表。
例如,如果您想要所有输入和textareas,您可以执行以下操作。请注意,您可以为仅具有特定属性的input元素指定:
const writableElements = document.querySelectorAll('input[type="text"], textarea');
console.log(writableElements);
&#13;
<input id="i1" type="text" />
<input id="i2" type="text" />
<input id="i3" type="radio" />
<textarea id="ta1"></textarea>
<textarea id="ta2"></textarea>
<textarea id="ta3"></textarea>
&#13;