{"record":{"id":"889474661726219c","repo":"Dogfalo/materialize","slug":"nouislider-create-requires-a-single-element","errorCode":null,"errorMessage":"noUiSlider.create requires a single element.","messagePattern":"noUiSlider\\.create requires a single element\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"extras/noUiSlider/nouislider.js","lineNumber":2126,"sourceCode":"\n        if ( options.pips ) {\n            pips(options.pips);\n        }\n\n        if ( options.tooltips ) {\n            tooltips();\n        }\n\n        return scope_Self;\n\n    }\n\n\n    // Run the standard initializer\n    function initialize ( target, originalOptions ) {\n\n        if ( !target.nodeName ) {\n            throw new Error('noUiSlider.create requires a single element.');\n        }\n\n        if (originalOptions.tooltips === undefined) {\n            originalOptions.tooltips = true;\n        }\n\n        // Test the options and create the slider environment;\n        var options = testOptions( originalOptions, target );\n        var api = closure( target, options, originalOptions );\n\n        target.noUiSlider = api;\n\n        return api;\n    }\n\n    // Use an object instead of a function for future expansibility;\n    return {\n        create: initialize","sourceCodeStart":2108,"sourceCodeEnd":2144,"githubUrl":"https://github.com/Dogfalo/materialize/blob/824e78248b3de81e383445e76ffb04cc3264fe7d/extras/noUiSlider/nouislider.js#L2108-L2144","documentation":"The initialize() entry point expects a single DOM element and detects that by checking for the nodeName property. Anything without nodeName (a selector string, a NodeList, a jQuery collection, an array, or null) is rejected before options are tested.","triggerScenarios":"Call noUiSlider.create('.slider', opts), noUiSlider.create(document.querySelectorAll('.slider'), opts), noUiSlider.create($('#slider'), opts) (jQuery object), or noUiSlider.create(null, opts).","commonSituations":"Migrating from a jQuery-plugin API that accepted selectors, passing querySelectorAll (which returns a NodeList) instead of querySelector, or passing a jQuery-wrapped element without [0].","solutions":["Pass a single element: document.querySelector('.slider') or document.getElementById('slider').","Unwrap jQuery: $('#slider')[0], or a NodeList: list[0].","If you have multiple sliders, loop and call create once per element."],"exampleFix":"// before\nnoUiSlider.create(document.querySelectorAll('.slider'), opts);\n// after\nnoUiSlider.create(document.querySelector('.slider'), opts);","handlingStrategy":"type-guard","validationCode":"function resolveTarget(target) {\n  if (target && typeof target.nodeName === 'string') return target;\n  if (typeof target === 'string') return document.querySelector(target);\n  if (target && typeof target.get === 'function') return target.get(0); // jQuery\n  if (target && typeof target.length === 'number' && target[0]) return target[0];\n  throw new TypeError('noUiSlider.create requires a single DOM element');\n}","typeGuard":"function isSingleElement(t) {\n  return !!t && typeof t === 'object' && typeof t.nodeName === 'string' && t.nodeType === 1;\n}","tryCatchPattern":null,"preventionTips":["Use querySelector (singular), not querySelectorAll.","Unwrap jQuery collections with [0] before passing.","When looping over a NodeList, call create() once per element."],"tags":["nouislider","initialization","dom","type-error"],"backgroundTag":null,"analyzedSha":"824e78248b3de81e383445e76ffb04cc3264fe7d","analyzedAt":"2026-08-13T04:14:22.506Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}