2017-10-15 74 views
0

我想動態更改帶有js函數的標題下的url。不幸的是我堆在一些容易的部分。更改url下的網址與JS

根據link我試圖解決這個問題......

我的代碼

簡體版:

<div class="details"> 
    <h1 id="title">Old title</h1> 
    <h3 id="author"> 
    <a id="aId" href="https://www.google.pl/">Old author</a> 
    </h3> 
</div> 

腳本:

var title = $("#title");// the id of the heading 
var author = $("#author");// id of author 

title.text("New title"); 
author.text("New author"); 
var a = document.getElementById('aId'); 
a.href = "bing.com" 

的問題是,作者現在還不是點擊。你可以幫幫我嗎?

編輯:

感謝您的幫助! 解決方案:

var title = $("#title");// the id of the heading 
var author = $("#author a");// id of author 

title.text("New title"); 
author.text("New author"); 
author.attr("href", "http://bing.com") 

回答

2

當你調用author.text("New author");,您在<h3 id="author">元素中刪除鏈接的形式。它基本上去從:

<h3 id="author"> 
    <a id="aId" href="https://www.google.pl/">Old author</a> 
</h3> 

<h3 id="author">New author</h3> 

你應該改變鏈接,而不是h3直接在作者的名字,如下:

var title = $("#title");// the id of the heading 
var author = $("#author a");// id of author 

title.text("New title"); 
author.text("New author"); 
var a = document.getElementById('aId'); 
a.href = "http://bing.com" 

要特別注意作者的選擇器已更改爲#author元素中的a元素。

你可以在這裏測試代碼:(等待3秒,你會看到該鏈接被更新)

https://jsfiddle.net/nq8hwr2x/

+0

謝謝你的回答。它正在工作,但我真的需要兩個標識符嗎?像'#author a'和'aId'?有沒有更優雅的方式? – Misiek777

+1

有一種更優雅的方式,我只是試圖保持更改至少。你可以做'author.text(「New author」)。attr(「href」,「http://bing.com」);'並且在一行中做所有的改變。 –

2

的問題是,你嵌套一個<h3>標籤,這是裏面的<a>標籤導致鏈接在更改text屬性時被刪除。你可以只輸<h3>標籤和直接設置<a>文本:

$("#title").text("New title"); 
 
$("#aId").text("New author").attr("href", "http://bing.com/");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="details"> 
 
    <h1 id="title">Old title</h1> 
 
    <a id="aId" href="https://www.google.pl/">Old author</a> 
 
</div>