我在基于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>

09-25 17:46