0
我如何使用Ext.js來解決這個問題?如何使用Ext.js爲內存中的標記添加屬性?
var html = '<div><a href="a.htm">a</a><a href="b.htm">b</a></div>';
$(html).find('a').attr('target', '_blank'); // the jQuery way
我如何使用Ext.js來解決這個問題?如何使用Ext.js爲內存中的標記添加屬性?
var html = '<div><a href="a.htm">a</a><a href="b.htm">b</a></div>';
$(html).find('a').attr('target', '_blank'); // the jQuery way
雖然第一個答案是正確的,但它確實它在一個真正的迂迴的方式:
var dom = Ext.DomHelper.createDom({
html: '<a href="a.htm">a</a><a href="b.htm">b</a>'
});
Ext.get(dom).select('a').set({
target: '_blank'
});
截至Ext.JS 4.1,
// createDom makes the passed 'html' a childNode
// of a new <div id="ext-gen####"></div> element
var htmlEl = Ext.DomHelper.createDom({html: '<div><a href="a.htm">a</a><a href="b.htm">b</a></div>' }),
memoryDom = Ext.get(htmlEl);
memoryDom.select('a').set({ target: '_blank' });
// removes the <div id="ext-gen####"></div> wrapper
console.log(memoryDom.getHTML());
啊,'Ext.get' ,gotcha。當我認爲沒有方法鏈接的時候,我有點驚訝。我仍然有點驚訝,'createDom'雖然返回了'HTMLElement',而不是'Ext.element'。 – Langdon 2012-08-17 00:53:47
這將是一個很好的補充,我想。很多這些方法都有一個返回HTMLElement或Ext.Element的選項。 – 2012-08-17 01:14:22
當你這樣做時,dom實際上有一個div。 – 2012-08-17 05:12:06