从标记

时间:2017-06-26 16:42:16

标签: javascript jquery

我的页面中有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>

3 个答案:

答案 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

&#13;
&#13;
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;
&#13;
&#13;

jQuery的:

&#13;
&#13;
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;
&#13;
&#13;