jQueryを初めて使用しました。ページを通過してアンカーリンクのhref属性を書き換えてスペースを削除し、%20 。jQuery/JavaScriptは%20のアンカーリンクの<space>を置き換えます。
これまでのところ、私は持っている:
$(".row a").each(function(){
$(this).attr("href").replace(/\s/g,"%20");
});
私は運でこれのいくつかのバリエーションを試してみました。
jQueryを初めて使用しました。ページを通過してアンカーリンクのhref属性を書き換えてスペースを削除し、%20 。jQuery/JavaScriptは%20のアンカーリンクの<space>を置き換えます。
これまでのところ、私は持っている:
$(".row a").each(function(){
$(this).attr("href").replace(/\s/g,"%20");
});
私は運でこれのいくつかのバリエーションを試してみました。
あなたのアプローチは正しいですが、一度交換すると新しい値を設定するのを忘れてしまいます。あなたは属性値(attr(key, value)
)を設定する必要が
$(".row a").each(function() {
this.href = this.href.replace(/\s/g,"%20");
});
、あなたのコードにだけその値読んでいる:これを試してみてくださいあなたはネイティブのJavaScript encodeURI
機能を使用したほうが良いと思います
$(".row a").each(function(){
$(this).attr('href', $(this).attr("href").replace(/\s/g,"%20"));
});
を。
$(".row a").each(function(){
$(this).attr('href', encodeURI($(this).attr("href")));
});
素晴らしいもの。前に 'encodeURI 'に出くわしたことはありませんでした。私は時間のヒープを保存しました。 –
あなたはそうのような""
を置き換えることができます。
$(document).ready(function() {
$("#content a").each(function(){
$(this).attr('href', $(this).attr("href").replace("%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
が、私はこれがスーパー遅れているけど、私はunescape()
方法ことがわかっhere
をご覧ください。あまりにも動作する傾向があります...
私はこれを理解しようと私の頭を打っていたのでちょうどメモ。 Firefox用のHTML Validatorアドオンを使用していて、URI参照の空白をまだ報告していました。これは、バリデータが* JavaScriptなしでページを個別に解析するためです。 – Travis