我有一个jQuery代码,当点击任何元素时,点击任何元素都可以在点击和返回时更改元素类型。点击切换元素类型
问题是CodePen中的某些原因在点击时根本没有改变,但是在原始网站中只做了一次就没有任何结果。
的HTML
<div>
<span class="input-group-btn">
<button type="submit" class="btn btn-primary"><span class="btn"aria-hidden="true">Go</span></button>
</span>
</div>
的Javascript:
jQuery(document).ready(function() {
$.fn.changeElementType = function(newType) {
var attrs = {};
$.each(this[0].attributes, function(idx, attr) {
attrs[attr.nodeName] = attr.nodeValue;
});
this.replaceWith(function() {
return $("<" + newType + "/>", attrs).append($(this).contents());
});
}
$('.input-group-btn button').changeElementType('div');
$(function() {
$(".input-group div").on("click", function(e) {
$('.input-group-btn div').changeElementType('button');
e.stopPropagation()
});
$(document).on("click", function(e) {
if ($(e.target).is(".input-group input") === false) {
$('.input-group-btn button').changeElementType('div');
}
});
});
});
这里是笔: http://codepen.io/florinsimion/pen/AXxKbG
任何想法?
在控制台上:'pen.js:4 Uncaught TypeError:无法读取未定义的属性'属性' – vaso123