jQuery / Javascript заменить в Якорной ссылке на %20

Я новичок в jQuery, и я пытаюсь написать код, чтобы пройти через страницу и переписать атрибут привязки href, чтобы удалить пробелы и заменить их %20.

пока у меня есть:

$(".row a").each(function(){
  $(this).attr("href").replace(/s/g,"%20");
});

Я пробовал несколько вариантов этого без успеха.

6 ответов


ваш подход верен, но вы забываете установить новое значение после его замены. Попробуйте это:

$(".row a").each( function() {
   this.href = this.href.replace(/\s/g,"%20");
});

вам лучше использовать собственный javascript encodeURI


вы должны установить значение атрибута ( attr(key, value) ), в вашем коде вы не только читаете его значение:

$(".row a").each(function(){
  $(this).attr('href', $(this).attr("href").replace(/\s/g,"%20"));
});

@Naresh Да, для этого есть способ, см. ниже пример:

Декодируйте URI после его кодирования:


<script type="text/javascript">

var uri="my test.asp?name=ståle&car=saab";
document.write(encodeURI(uri)+ "<br />");
document.write(decodeURI(uri));

</script>  

вывод кода выше будет:


my%20test.asp?name=st%C3%A5le&car=saab
my test.asp?name=ståle&car=saab

для более подробной информации посетите здесь


Вы можете заменить "" вот так:

$(document).ready(function () {
    $("#content a").each(function (){
        $(this).attr('href', $(this).attr("href").replace("%20",""));
    });
});

Я знаю, что это очень поздно, но я обнаружил, что unescape() метод имеет тенденцию работать тоже...