我在jQuery論壇中發現了一個響應,並且他們提供了一個函數來執行此操作,但結果並不相同。 這裏是我的圖像按鈕創建了一個例子:如何使用jQuery獲得outerHTML以使其跨瀏覽器
var buttonField = $('<input type="image" />');
buttonField.attr('id', 'butonFshi' + lastsel);
buttonField.val('Fshi');
buttonField.attr('src', 'images/square-icon.png');
if (disabled)
buttonField.attr("disabled", "disabled");
buttonField.val('Fshi');
if (onblur !== undefined)
buttonField.focusout(function() { onblur(); });
buttonField.mouseover(function() { ndryshoImazhin(1, lastsel.toString()); });
buttonField.mouseout(function() { ndryshoImazhin(0, lastsel.toString()); });
buttonField.click(function() { fshiClicked(lastsel.toString()); });
我有這樣的情況:
buttonField[0].outerHTML = `<INPUT id=butonFshi1 value=Fshi src="images/square-icon.png" type=image jQuery15205073038169030395="44">`
代替外功能我發現給出buttonField.outer()= <INPUT id=butonFshi1 value=Fshi src="images/square-icon.png" type=image>
功能是:
$.fn.outer = function(val){
if(val){
$(val).insertBefore(this);
$(this).remove();
}
else{ return $("<div>").append($(this).clone()).html(); }
}
這樣喜歡這我鬆開了我插入的處理程序。 有沒有辦法使用jquery獲得outerHTML,以便讓它跨瀏覽器而不會丟失處理程序?!從https://github.com/darlesson/jquery-outerhtml
var outer = buttonField.parent().html();
這不是創建自定義屬性的好東西,比如'jQuery15205073038169030395 = 「44」'。相反,使用jQuery函數'.data(element,key,value)'來存儲自定義數據。然後,您可以使用'.clone(true)',其中布爾值指示是否要複製數據和事件 – Andre 2011-04-20 15:56:13