我在查找和設置基於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});' –