[英]Find server name from CSS href with jQuery
如何使用jQuery或JavaScript将以下服务器路径分配给变量?
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
从
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
字符串Some/Path
是需要匹配的内容。
为了清楚https://myServer:44301/
,该变量应包含字符串https://myServer:44301/
您可以尝试以下方法:
function getHostWithPath(path) {
var linkNodeList = document.getElementsByTagName('link');
for (var i = 0 ; i <linkNodeList.length ; i++) {
var l = document.createElement("a");
l.href = linkNodeList[i].href;
/*
// Usefull properties available in l:
console.log(l.hostname);
console.log(l.port);
console.log(l.pathname);
console.log(l.hash);
console.log(l.protocol);
console.log(l.search); // Query String
*/
if (l.pathname == path) {
var re = new RegExp(path + '.*');
return l.href.replace(re, '');
}
}
}
var myHostname = getHostWithPath('/Some/Path');
JQuery可以通过在页面上运行以下代码来完成此操作:
var server = $("link[href*='/Some/Path']").attr("href").replace("Some/Path/", "");
它的作用是选择href包含/ Some / Path的元素,并获取整个href属性的文本/值。 然后,它将删除Some / Path /部分,仅留下https://myServer:44301/
,然后在变量server
进行设置。
片段:
var server = $("link[href*='/Some/Path']").attr("href").replace("Some/Path/", ""); alert(server);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link rel="stylesheet" href="/core/assets/styles.min.css"> <link rel="stylesheet" href="/Content/Site.css"> <link rel="stylesheet" href="https://myServer:44301/Some/Path/"> <link rel="stylesheet" href="https://anotherServer/Another/Path/">
$(function() { $("link").each(function() { var href = $(this).prop("href"); alert(href); }); });
<!DOCTYPE html> <html> <head> <title>title here</title> <meta charset="utf-8" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <link rel="stylesheet" href="/core/assets/styles.min.css"> <link rel="stylesheet" href="/Content/Site.css"> <link rel="stylesheet" href="https://myServer:44301/Some/Path/"> <link rel="stylesheet" href="https://anotherServer/Another/Path/"> </head> <body> <!-- page content --> </body> </html>
下面的代码获取每个链接,并使用alert()
显示它们。 根据您的条件,我让您用条件bloc if()
来包装alert()
以获取正确的href(也许您的链接总是这样设置的,所以您希望采用第3个,依此类推)。 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.