您可以直接使用this
el = this;
更新:
我沒有注意到 「handlebars.js」。無論如何,handlebars js處理html字符串。它不處理對象。您可以創建模板並應用數據來填充所需的html字符串。所以,如果你想添加一些可以使用jQuery檢索的數據,你必須添加一個屬性,如下所示。
<li data-name="abc">abc</li>
可使用檢索
$("li").data("name")
我希望下面的代碼將幫助您 的jsfiddle:http://jsfiddle.net/diode/bGJTv/
Handlebars.registerHelper('str', function(items, options) {
var out = '<ul>';
for (var i = 0, l = items.length; i < l; i++) {
out = out + '<li data-mydata="' + items[i].year + '" onclick="onLiClick(event)">' + items[i].firstName + " " + items[i].lastName + '</li>';
}
return out + '</ul>';
});
$("#entry-template").html(Handlebars.compile($("#entry-template").html())({
people: [
{
firstName: "Yehuda",
lastName: "Katz",
year: "2010"},
{
firstName: "Carl",
lastName: "Lerche",
year: "2011"},
{
firstName: "Alan",
lastName: "Johnson",
year: "2012"}
]
}));
onLiClick = function (event){
console.log(event.currentTarget);
console.log($(event.currentTarget).data("mydata"));
}
你的意思是說,你想要的裏的HTML?在這種情況下,使用$(this).html()獲取標記 – TWickz 2012-08-15 11:32:12
如果你想獲得普通的DOM節點('var el = this;'),只需*不要將元素包裝到jQuery對象*中。 – 2012-08-15 11:33:01
no not html ..但是作爲一個li對象,這樣我可以執行像el.find('div')等操作...等 – user1184100 2012-08-15 11:33:36