我在查找和设置基于jQuery数据集的元素的值时遇到问题。jQuery从数据中查找元素
的数据集是这样的:
$(this).data('scanner', {type: 'input', id: index});
然后我试图这样设置元素的值:
$('[data-type="input"][data-id="0"]').val(string);
但没有设置...控制台也不会抛出任何错误。
我在查找和设置基于jQuery数据集的元素的值时遇到问题。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>
那是因为你使用的属性选择的数据值 - 你不能这样做 –
如果你想在选择器中使用它们,你需要使用它们作为属性值。 –
'$(this).attr({ data-type':'input','data-id':index});' –