jQuery - replaceWith更新HTML不會使圖像或鏈接
我正在寫一個JavaScript代碼(使用jQuery和Knockout)和HTML,接受用戶輸入(GitHub用戶名)的小代碼,檢查輸入是否有效對GitHub api,並顯示用戶的GitHub頭像和用戶名(鏈接到GitHub上的匹配配置文件)。顯示屏會替換用戶輸入用戶名的表單。
用戶輸入之前的原始HTML是:
<div id="inputSection">
<form>
<p>
GitHub Username:
<input type="text" name="username" value="" placeholder="username" id="un"/>
<button type="button" id="submitButton">Login</button>
</p>
</form>
</div>
和代碼來代替它的是:
$("#submitButton").click(function() {
var username = document.getElementById('un').value;
var inputForm = $(document.getElementById('inputSection'));
$.ajax({
...
success: function() {
alert("Welcome, " + username);
var userURL = 'https://github.com/' + username;
var inputContent = $('<a data-bind="attr: {href: userURL}"><img data-bind="attr: {src: avatar_url}" height=\"30\" width=\"30\"/>' + username + '</a>');
$(inputForm.replaceWith(inputContent));
}
});
});
這似乎大部分工作。警報在通過用戶名歡迎用戶後,表單從網頁中消失。它被用戶名所替代,該用戶名被格式化爲鏈接。但是,它不起作用。點擊它不會做任何事情。此外,用戶的頭像,儘管在網頁上顯示一組大小的設置,卻沒有出現。
該解決方案可能非常簡單明顯,但由於本週我纔開始學習這些語言和庫,我不確定發生了什麼問題。敲除應該運行在調用JavaScript頁面的HTML頁面上,並且ajax正在處理其他函數,所以我認爲沒關係。值「avatar_url」是使用ajax在https://api.github.com/users請求的api的一部分。
我已經嘗試了各種不同的東西,沒有效果。如果您需要更多信息或有更好的建議,請發表評論。我是編程和堆棧溢出的新手,但我想盡可能使我的程序和我的問題都儘可能好。感謝您的時間。
編輯:1.我最初未能設置圖像的大小,導致一個0x0圖像。儘管圖像本身仍然不顯示,但這已得到糾正。 2.當我第一次加入我的代碼時,我試圖通過排除其中一些變量已被重命名爲其他不相關部分並僅使兩個相關片段之間的所有名稱匹配來更容易閱讀。我沒有抓住他們。他們應該現在都匹配。
長答案jQuery方法中的getContentString中的反引號似乎是不必要的,並導致問題。嘗試它們時我可能做錯了。你能解釋一下他們的功能嗎? – deadandhallowed
後面的蜱是爲了單引號(爲了避開它們)。對於那個很抱歉... – user3297291