обработка атрибута 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, время: 12:38. |