基本上我有一个拖放应用程序,并希望在事情落实到位时在某些元素上设置引导弹出窗口。这是我到目前为止设置它(之后我激活.popover):
$(this).find(".simple-editable").attr({
"rel":"popover",
"data-html":"true",
"data-content":"<div class='simple-edit-box'><form>" +
"<input type='text' placeholder='" + $(this).html() + "'>" +
"<button type='save' class='btn-success'>Save</button> </form></div>",
"data-placement":"top"
})
然而$(this).html()正在拉入整个DIV(就像它应该的那样),但我想要的东西只是该特定.simple-editable类中的内容。所以我的基本问题是,使用.find()是否有办法访问变量jquery当前正在修改?
答案 0 :(得分:3)
var simpleEditable = $(this).find(".simple-editable");
simpleEditable.attr({
"rel":"popover",
"data-html":"true",
"data-content":"<div class='simple-edit-box'><form>" +
"<input type='text' placeholder='" + simpleEditable.html() + "'>" +
"<button type='save' class='btn-success'>Save</button> </form></div>",
"data-placement":"top"
});
更一般地说,在您想要在重新分配“this”关键字的范围内访问“this”的情况下,请像这样缓存对它的引用:
var self = $(this);
self.find(".simple-editable").attr({
// in here, self.find(".simple-editable") works
// whereas $(this).find(".simple-editable") will return an empty array
});
答案 1 :(得分:1)
我不相信。您将要缓存查找查询,然后应用该元素的.html()
。