我在基于jQuery的数据集查找和设置元素的值时遇到问题。
数据设置如下:
$(this).data('scanner', {type: 'input', id: index});
然后,我试图像这样设置元素的值:
$('[data-type="input"][data-id="0"]').val(string);
但是什么也没设置……控制台也不会抛出任何错误。
最佳答案
您可以使用filter
$("some_selector").filter(function(){
var scannerData = $(this).data('scanner');
return scannerData
&& scannerData.type === "input"
&& scannerData.id === 1;
}).val("some string");
这是一个例子:
$("#div1").data('scanner',{type: 'input', id: 1});
$('div').filter(function(){
var scannerData = $(this).data('scanner');
return scannerData && scannerData.type === "input" && scannerData.id === 1;
}).text("Updated");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">Div1 (has data)</div>
<div>Div2</div>
<div>Div3</div>