2010-08-13 58 views

回答

1

我已经使用这个片段中,这是相当难看,但作品。

function getElementsByClassName(classname, node) { 
    if (!node) { 
     node = document.getElementsByTagName('body')[0]; 
    } 
    var a = [], re = new RegExp('\\b' + classname + '\\b'); 
    els = node.getElementsByTagName('*'); 
    for (var i = 0, j = els.length; i < j; i++) { 
     if (re.test(els[i].className)) { 
      a.push(els[i]); 
     } 
    } 
    return a; 
} 

HTMLElement.prototype.click = function() { 
    var evt = this.ownerDocument.createEvent('MouseEvents'); 
    evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 
      0, 0, 0, 0, false, false, false, false, 0, null); 
    this.dispatchEvent(evt); 
} 

var elts = getElementsByClassName("x-grid3-col-value", window.innerHTML); 
var i = 0; 

while (i < elts.length) { 
    var elt = elts[i]; 
    elt.click(); 
    i++; 
} 
2

您将得到所有与该类项目是这样的:

var items = Ext.query('.x-grid3-col-value'); 

它会给你所有项目的数组。然后,你可以通过每个项目去,并把处理程序,在每个项目:

Ext.each(items, function (item) { 
     item = Ext.get(item); 

     item.on('click', function() { 
      //'click' or 'dblclick' or 'mouseover' 
      //console.log(item); 
      //Do whatever you want 
     }, this); 
    }, this); 
+0

为了节省不必使用每个你可以使用: – 2011-05-25 14:23:14

+1

'Ext.select每个(函数(项目){...});'(( 'X-GRID3-COL-价值。')。那么它仍然使用'每个',但它至少可以链接它) – 2011-05-25 14:35:30

相关问题