Was jQuery Funktion ist äquivalent zu PHP str_replace?

Ich bin auf der Suche nach allen Attributen der option-tag (außer der Wert), so kann ich ersetzen die option tag mit einem Listenelement-tag und fügen Sie dann die Attribute, die in der Liste Element. Alle Google-Ergebnis, auf die ich stoße, sagt zu replace() dies zu tun, aber ich erhalte die folgende Fehlermeldung in der Konsole:

Uncaught TypeError: undefined is not a function

Dies geschieht auf die folgende Zeile:

var elemAtts = $(this).replace('<option value="'+$(this).prop("value")+'" ', '');

Dies ist das komplette Skript:

$('select').each(function(){

        var selectName = $(this).prop("name");
        var selectOpts = $(this).find("option");
        var selectPar = $(this).parent();

        var hiddenInput = '<input type="hidden" name="'+selectName+'" value="">';

        var menu = '<div class="jqSelect">' + 
            '<div class="selected-text" id="'+selectName+'-selected"><div id="'+selectName+'-text">'+$(this).find(":selected").text()+'</div>' + 
            '<div class="caret" onclick="$(\'ul#'+selectName+'-menu\').toggle();"></div>' +
            '<ul id="'+selectName+'-menu">';

        selectOpts.each(function(){

            if($(this).is(":selected")){

                $('#'+selectName+'-selected').text($(this).text());
                menu += '<li class="selected"';

            } else {

                menu += '<li';

            }

            var elemAtts = $(this).replace('<option value="'+$(this).prop("value")+'" ', '');
            elemAtts = elemAtts.replace('>', '');

            menu += ' data-option-value="'+$(this).prop("value")+'" '+elemAtts+'>'+$(this).text()+'</li>';

        });

        menu += '</ul></div>';

        selectPar.html(menu + hiddenInput);

        $('ul#'+selectName+'-menu').hide();

        generatedMenu = $('#'+selectName+'-menu');
        generatedMenu.find('li').each(function(){

            $(this).on('click', function(){

                $('#'+selectName+'-text').text($(this).text());
                $('#'+selectName+'-menu').hide();
                $('input[name="'+selectName+'"]').attr("value", $(this).data('option-value'));
                $(this).siblings().removeProp('class');
                $(this).prop('class', 'selected');
            });

        });

    });

Im Grunde, was ich versuche zu tun ist, schalten Sie diese...

<option value="123" rel="toggleElem" class="foo" id="bar">Hello!</option>

In diesem(string-form)...

rel="toggleElem" class="foo" id="bar"

InformationsquelleAutor ShoeLace1291 | 2014-07-05

Schreibe einen Kommentar