обработка атрибута href
Всем привет! :victory:
Припустим есть такой html-файл: <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" ></script> <script type="text/javascript"> $(document).ready(function() { $('a').click(function() { var url = $(this).attr('href'); alert (url); return false; }); }); </script> <a href="http://test.tk/file.php">http://test.tk/file.php</a><br> <a href="//test.tk/file.php">//test.tk/file.php</a><br> <a href="/file.php">/file.php</a><br> <a href="file.php">file.php</a> Как сделать(а точнее обработать) чтобы каждый алерт выдал просто file.php :) |
Например, так:
$(document).ready(function() { $('a').click(function() { var url = /file.php/.exec( $(this).attr('href') ); alert(url); return false; }); }); |
Цитата:
$(document).ready(function() { $('a').click(function() { var url = $(this).attr('href'), arr = url.split('/'), fileName = arr[arr.length-1]; alert(fileName); return false; }); }); Ну и если надо, то дополнительно проверять fileName на соответствие нужному шаблону. |
Цитата:
http://test.tk/#/file.php или http://test.tk/file.php#/file.php и я изменяю хеши так $(document).ready(function() { $('a').click(function() { var url = $(this).attr('href'); window.location.hash = "/" + url; return false; }); }); теперь поменяйте этот кусок javascript на кусок в первом примере |
в это примере
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" ></script> <script type="text/javascript"> $(document).ready(function() { $('a').click(function() { var url = $(this).attr('href'); window.location.hash = "/" + url; return false; }); }); </script> <a href="http://test.tk/file.php">http://test.tk/file.php</a><br> <a href="//test.tk/file.php">//test.tk/file.php</a><br> <a href="/file.php">/file.php</a><br> <a href="file.php">file.php</a> ссылки будут http://test.tk/file.html#/http://test.tk/file.php http://test.tk/file.html#///test.tk/file.php http://test.tk/file.html#//file.php http://test.tk/file.html#/file.php а мне нужно что бы все были http://test.tk/file.html#/file.php вот как :) проще было бы использовать HTML5 History API то Devote но я велосипедист :thanks: |
Цитата:
Uncaught TypeError: Object [object Array] has no method 'split' я тоже пробовал через split, что-то никак |
Цитата:
|
Цитата:
|
Общем я криво задал задачу и не полностью получил ответ
мне нужно не имя файла, а все что после первого слеша http://test.tk/test/file.php = test/file.php или /test/file.php а получается http://test.tk/test/file.php = file.php помогите мне еще раз пожалуйста :help: |
Ну тогда используй pathname:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> </head> <body> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" ></script> <script type="text/javascript"> $(document).ready(function() { $('a').click(function() { alert(this.pathname); return false; }); }); </script> <a href="http://test.tk/test/file.php">http://test.tk/test/file.php</a><br> <a href="//test.tk/some/path/file.php">//test.tk/some/path/file.php</a><br> <a href="test/file.php">test/file.php</a><br> <a href="file.php">file.php</a> </body> </html> |
Часовой пояс GMT +3, время: 15:49. |