Javascript JS:从DOM中将href和src属性URL提取为绝对值

Javascript JS:从DOM中将href和src属性URL提取为绝对值,javascript,jquery,regex,path,absolute-path,Javascript,Jquery,Regex,Path,Absolute Path,我使用JQuery从DOM中的元素中提取src和href,如下所示: var mysrc; $('img[src]').each(function (index) { mysrc = $(this).attr('src'); // convert relative path to absolute url }); 但是,这些指向图像或链接href的路径中有许多是相对的,而不是绝对的。有时,它们从web根目录开始,如下所示:/blah/img.jpg,它们在一个目录上下移动:../b

我使用JQuery从DOM中的元素中提取src和href,如下所示:

var mysrc;
$('img[src]').each(function (index) {
   mysrc = $(this).attr('src');
   // convert relative path to absolute url
});
但是,这些指向图像或链接href的路径中有许多是相对的,而不是绝对的。有时,它们从web根目录开始,如下所示:/blah/img.jpg,它们在一个目录上下移动:../blah/img.jpg。 我想将所有这些路径都设置为绝对URL,但我还没有找到一个脚本来实现这一点。我知道如何从该位置提取给定页面的主机,但是我缺少将这些相对路径转换为绝对URL的所有逻辑。知道在Javascript/JQuery中哪里可以找到这样做的方法,或者我应该如何继续

感谢您的帮助,

.prop()
返回计算出的属性值,即绝对路径。
除了使用jQuery方法,还可以使用普通的
this.src

$('img[src]').each(function (index) {
   // var mysrc = $(this).prop('src');  //<-- jQuery
   var mysrc = this.src;
   // Why do you want to get the absolute path, by the way?
});
$('img[src]')。每个(函数(索引){

//var mysrc=$(this.prop('src');//您可能想要获取应用程序上下文-我认为它在javascript中不可用。不过,您可能知道每个应用程序的上下文

在JSP中,您可以获得如下上下文:

var contextPath=“”

其他服务器端语言应该有类似的结构

绝对路径=window.location-contextPath+relativeURL

所以,如果你的URL是

上下文是,相对路径是“./somedir/mypic.jpg”,那么绝对路径是


/bar/./somedir/mypic.jpg

很酷!谢谢。事实上,我发现这也可以:$(''your#img').get(0).src--但这可能是相同的,对吗?@Loic.
.get(0)
返回jQuery对象的第一个匹配DOM元素。因此,
$(this.get(0)==this