根據JQuery API's Documentation我使用正確的事件處理程序。動態更改元素的標記名?
我也意識到IE的問題,以及坦率地說並不在乎。由於這僅僅只是一個好玩的實驗,
注:試圖改變通過HTML或已在HTML文檔中創建的
input
元素的type
屬性(或屬性) 將導致引發錯誤由Internet Explorer 6,7或8
所以我一直試圖讓這過去一小時工作,我留下了幾個問題...
- 這甚至可能嗎?
- 如果是的話我在做什麼錯&我該如何解決它?
編輯: 我的目的是從到任何用戶指定的span
改變.selected
的標籤。我原本以button
爲例,但我看到了我的帖子被誤解的容易程度。因爲我的意圖是將span
標記更改爲button
到input[type=text]
元素之間的任何內容。全部取決於用戶在文本框中鍵入的內容。
我不明白replaceWidth會在這種情況下如何幫助我,但如果任何人都可以詳細說明,以幫助我瞭解更多,那麼將不勝感激。
$(document).ready(function() {
// Show active tag
$(".activetag").html($(".selected").prop("tagName").toLowerCase());
// Change selected element's tag
$(".convert").on("keyup", function() {
$(".selected").replaceWidth($("div")).html($(".selected").html());
});
// Show selected element's code
// ex. <span class="selected">Hello world</span>
$(".code").val($(".selected").html());
});
<!DOCTYPE html>
<html>
<head>
<title>new document</title>
<meta charset='utf-8'>
<meta name='viewport' content='initial-scale=1.0'>
<meta http-equiv='X-UA-Compatible' content='IE=9' />
<link type='text/css' rel='stylesheet' href='http://necolas.github.io/normalize.css/3.0.1/normalize.css'/>
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script>
</head>
<body>
<div align="center">
<span class="activetag">Hello world</span><br />
<input type="text" class="convert"><br />
<span class="selected">Hello world</span><br />
<textarea class="code"></textarea>
</div>
</body>
</html>
什麼讓你覺得你可以改變'.tagName'?通常的解決方案是用所需類型的新DOM元素替換當前標籤(及其子標籤)。 – jfriend00
而且,一些其他替代解決方案:http://stackoverflow.com/questions/2815683/jquery-javascript-replace-tag-type和http://upshots.org/javascript/jquery-change-tag-name – jfriend00
它不是一個愚蠢的imo,因爲它似乎使輸入類型屬性與標記名混淆,並且可能需要'$(「。」selected「)。attr(」type「,」button「);' – andrew