我知道我可以在标签中包装它的.html(),但元素本身有一个动态设置的id,类等.如何让jQuery返回包含它自身的元素标记?
tan*_*hos 15
这将很好:
jQuery.fn.outer = function() {
return $($('<div></div>').html(this.clone())).html();
}
Run Code Online (Sandbox Code Playgroud)
据我所知,jQuery中没有"outerHTML"支持,但你可以编写一个函数来模拟它(在IE以外的浏览器中),或者使用这个插件:
// this will return the element and it's mark-up, of an element
// with the id myTag
var outer = $('#myTag').outerHTML();
Run Code Online (Sandbox Code Playgroud)
显然Brandon不是唯一的实现..我相信你也可以提出其他聪明的实现..
编辑
如果你热衷于避免追加电话,也许你可以尝试这样的事情..
function getOuterHTML(el)
{
var wrapper = '';
if(el)
{
var inner = el.innerHTML;
var wrapper = '<' + el.tagName;
for( var i = 0; i < el.attributes.length; i++ )
{
wrapper += ' ' + el.attributes[i].nodeName + '="';
wrapper += el.attributes[i].nodeValue + '"';
}
wrapper += '>' + inner + '</' + el.tagName + '>';
}
return wrapper;
}
// now, to replicate the sample above
var outer = getOuterHTML($('#myTag'));
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,我不确定是否所有浏览器都支持属性数组..但我知道mozilla家族的那些,并且IE对outerHTML有原生支持..试一试(对于那些没有支持您可以使用以前使用追加的方法的属性数组)
| 归档时间: |
|
| 查看次数: |
9720 次 |
| 最近记录: |