如何从js中的元素列表中获取元素,该元素具有自定义属性?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从js中的元素列表中获取元素,该元素具有自定义属性?相关的知识,希望对你有一定的参考价值。
我想从jQuery中的相同元素列表中获取具有服装value
属性的所有元素。
我有以下html表单:
<label>name <input type="text" name="name" value="value"></label>
<label>value1 <input type="radio" name="name1" value="value1"></label>
<label>value2 <input type="radio" name="name1" value="value2"></label>
<label>value3 <input type="radio" name="name1" value="value3"></label>
<label>value4 <input type="checkbox" name="name2[]" value="value4"></label>
<label>value5 <input type="checkbox" name="name2[]" value="value5"></label>
我确实尝试了以下代码:
form = $('form');
form_data = {
'name':'test value',
'name1':'value2',
'name2[check]':'value5',
};
$.each(form_data,function(i,v){
input = form.find('[name="'+i+'"]');
inputtype = input.attr('type');
if(inputtype == 'checkbox' || inputtype == 'radio'){
input.has('[value="'+v+'"]').prop('checked',true);
}else{
input.val(v);
}
});
但是当我尝试使用input.has('[value="'+v+'"]')
获取相同的元素属性时,我没有返回任何元素来检查该元素..!任何解决方案..?
答案
你可以使用filter
,这会将变量input
减少到只有一个等于变量v
的值
这是片段。
$(function() {
var form = $('form');
var form_data = {
'name': 'test value',
'name1': 'value2',
'name2[]': 'value5',
};
$.each(form_data, function(i, v) {
var input = form.find('[name="' + i + '"]');
var inputtype = input.attr('type');
if (inputtype == 'checkbox' || inputtype == 'radio') {
input.filter(function() {return this.value === v;}).prop('checked', true);
} else {
input.val(v);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<label>name <input type="text" name="name" value="value"></label>
<label>value1 <input type="radio" name="name1" value="value1"></label>
<label>value2 <input type="radio" name="name1" value="value2"></label>
<label>value3 <input type="radio" name="name1" value="value3"></label>
<label>value4 <input type="checkbox" name="name2[]" value="value4"></label>
<label>value5 <input type="checkbox" name="name2[]" value="value5"></label>
</form>
以上是关于如何从js中的元素列表中获取元素,该元素具有自定义属性?的主要内容,如果未能解决你的问题,请参考以下文章
Appium 自动化测试:如何从 android [android.view.View] 中的自定义 UI 中获取元素或文本