Quiero buscar el valor y el atributo de prueba de datos . en select2
<option value="Test 1" data-test="user-1">Test 1</option> <option value="Test 2" data-test="user-2">Test 2</option> <option value="Test 3" data-test="user-3">Test 3</option>Puede leer más documentos para buscar en select2: ejemplo igual que con los datos:
$('.test-search').select2({ matcher: function (params, data) { // If there are no search terms, return all of the data if ($.trim(params.term) === '') { return data; } // Do not display the item if there is no 'text' property if (typeof data.text === 'undefined') { return null; } // `params.term` should be the term that is used for searching // `data.text` is the text that is displayed for the data object if (data.element.dataset.test.indexOf(params.term) > -1) { var modifiedData = $.extend({}, data, true); modifiedData.text += ' (matched)'; // You can return modified objects from here // This includes matching the `children` how you want in nested data sets return modifiedData; } // Return `null` if the term should not be displayed return null; } }); .test-search{ width: 80px; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script> <select class="test-search"> <option value="Test 1" data-test="user-1">Test 1</option> <option value="Test 2" data-test="user-2">Test 2</option> <option value="Test 3" data-test="user-3">Test 3</option> <option value="Test 4" data-test="employee-3">Test 4</option> </select>