_selector_run = function (type, selector, selectFn, settings, opts) {
		var
			out = [], res,
			a, i, ien, j, jen,
			selectorType = typeof selector;

		// Can't just check for isArray here, as an API or jQuery instance might be
		// given with their array like look
		if (!selector || selectorType === 'string' || selectorType === 'function' || selector.length === undefined) {
			selector = [selector];
		}

		for (i = 0, ien = selector.length; i < ien; i++) {
			// Only split on simple strings - complex expressions will be jQuery selectors
			a = selector[i] && selector[i].split && !selector[i].match(/[[(:]/) ?
				selector[i].split(',') :
				[selector[i]];

			for (j = 0, jen = a.length; j < jen; j++) {
				res = selectFn(typeof a[j] === 'string' ? (a[j]).trim() : a[j]);

				// Remove empty items
				res = res.filter(function (item) {
					return item !== null && item !== undefined;
				});

				if (res && res.length) {
					out = out.concat(res);
				}
			}
		}

		// selector extensions
		var ext = _ext.selector[type];
		if (ext.length) {
			for (i = 0, ien = ext.length; i < ien; i++) {
				out = ext[i](settings, opts, out);
			}
		}

		return _unique(out);
	}
Load data from the newly set Ajax URL. Note that this method is only
available when `ajax.url()` is used to set a URL. Additionally, this method
has the same effect as calling `ajax.reload()` but is provided for
convenience when setting a new URL. Like `ajax.reload()` it will
automatically redraw the table once the remote data has been loaded.

@returns {DataTables.Api} this