我的页面中有url,我想从href中删除前面部分(http://example.com/?)并只保留第一个子div并从主div中删除其余的div。我必须使用js或jQuery这样做我该怎么办?
<div class="main">
<a href="http://www.example.com/?https://someotherurl.org" target="_blank">google</a>
<div class="div-1">
data
</div>
<div>
extra
</div>
<div>
extra
</div>
</div>
<!-- the final code I want is -->
<div class="main">
<a href="https://someotherurl.org" target="_blank">google</a>
<div class="div-1">
data
</div>
</div>
答案 0 :(得分:2)
以下是示例代码:
var url=document.getElementsByClassName('main')[0].childNodes[1].href;
url=url.split("?");
document.getElementsByClassName('main')[0].childNodes[1].href=url[1];
<div class="main">
<a href="http://www.example.com/?https://someotherurl.org" target="_blank">google</a>
<div class="div-1">
</div>
</div>
我保留链以查看我如何选择元素和href attr。
答案 1 :(得分:0)
使用split
获得所需的结果,演示:https://jsfiddle.net/uxqsxo1v/1/
var url = $('a').attr('href');
url = url.split('?');
var newUrl = url[1];
$('a').attr('href',newUrl);
答案 2 :(得分:0)
我更喜欢querySelector,因为它比getElementsByClassName更兼容,并且可以很容易地转换为jQuery
var anchor = document.querySelector('div.main>a'),
href = anchor.href.split("?")[1]; // assuming no other ? in the url
anchor.href=href;
&#13;
<div class="main">
<a href="http://www.example.com/?https://someotherurl.org"
target="_blank">google</a>
<div class="div-1"></div>
</div>
&#13;
jQuery的:
var $anchor=$("div.main>a");
$anchor.prop("href", $anchor.prop("href").split("?")[1]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
<a href="http://www.example.com/?https://someotherurl.org" target="_blank">google</a>
<div class="div-1"></div>
</div>
&#13;