如何用<a> and saving all attributes</a> </button>替换<button>

时间:2015-03-04 23:53:09

标签: jquery userscripts replacewith

<div class="pagination">
        <button class="ajax left" data-href="" rel="prev"></button>
        <button class="active">1</button><button class="ajax" data-href="/legenda/carrega_destaques/todos/2">2</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/3">3</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/4">4</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/5">5</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/6">6</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/7">7</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/8">8</button>
        <button class="ajax" data-href="/legenda/carrega_destaques/todos/9">9</button>
        <button class="ajax right" data-href="/legenda/carrega_destaques/todos/2" rel="next"></button>
</div>

我通过一些研究来了解这段代码:

$("button").on('load',function(){
    var buttonclass = $(this).attr('class');
    var buttonrel = $(this).attr('rel');
    var buttondatahref = $(this).attr('data-href');
    var buttonText = $(this).html();
    $(this).replaceWith("<a class=" + buttonclass + " rel=" + buttonrel + " href=" + buttondatahref + ">" + buttonText + "</a>");
            }
});

我得到了一些错误,比如上一个按钮与课程&#34; java对&#34;或者&#34; java left&#34;仅保存&#34; java&#34;单词和一些未定义的属性。 而且这将成为一个用户脚本。 如果有人可以帮助或知道一个简单的方法,这将是伟大的。

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案:

function addEventListener(){
    var replacementTag = 'a';
// Replace all a tags with the type of replacementTag
$('div.pagination>button').each(function() {
    var outer = this.outerHTML;

    // Replace opening tag
    var regex = new RegExp('<' + this.tagName, 'i');
    var newTag = outer.replace(regex, '<' + replacementTag);

    // Replace closing tag
    regex = new RegExp('</' + this.tagName, 'i');
    newTag = newTag.replace(regex, '</' + replacementTag);

    $(this).replaceWith(newTag);

});
}