如何仅替换一些“this”外部函数
How can i replace some "this" only outside functions?
我想替换脚本中的一些"this"。
$(this).find('option').each(function() {
$(this).hide();
})
是否可以仅替换外部的this,或者仅替换不在功能块内的"this"?我的想法行不通...
.replace(/([^{])'bthis'b([^}])/gm, $1replacement$2)
附录:第一个代码作为字符串处理,而不是作为javascript处理!我正在寻找一个正则表达式来仅替换外部的"this"。
如果我
正确理解您的问题,您希望从函数中引用$(this)
变量,但是该变量会更改为函数的局部范围。因此,在函数中,$(this)
将引用您当前正在迭代的项目。
在输入函数之前缓存$(this)
对象的作用域。
var cached_this = $(this);
$(this).find('option').each(function() {
cached_this.hide();
})
现在,您可以使用 cached_this
变量从不同的范围内访问外部$(this)
的值。
区分"外部"和"内部"文本的方法是,对于内部,下一个大括号是右括号,它关闭了它的块。
因此,使用负面展望来排除块中的this
:
str = str.replace(/'bthis'b(?![^{]*'})/gs, replacement);
另请注意替换术语的简化,因为匹配只是目标文本"this"。
查看此正则表达式工作的现场演示。
在这种情况下,
这是一个对象。它不是您可以替换的字符串。您可以分配另一个值,但这样的替换将不起作用。
如果您只想替换某些div,只需更改您的 jQuery 选择器以选择具有特定类或父div 的子元素的那些。
您可以尝试使用调用。由于此功能,您可以替换this
对象:
$(this).find('option').each(function() {
// here this === replacement
$(this).hide();
}.call(replacement))
如果它在函数中,您可以通过在调用它时为其分配不同的变量来"替换"this
。
var func = function() {
$(this).find('option').each(function() {
$(this).hide();
});
};
func.apply(annotherThis);
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- HTML表单提交时未执行外部函数
- $(this).prop('property') vs. this.property
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- 使用html中的外部javascript进行数据验证
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 将变量传递给外部Javascript
- TypeScript:在对象文字字段中的访问器中访问外部“this”
- 如何将 THIS 绑定到 PHP 中的外部函数
- 在 jQuery 中从父元素外部单击“this”时如何切换子元素
- 如何设置 var self = this;从函数外部
- Meteor.js 1.0:如何使用this._id返回 ObjectId 外部的_id
- 如何在不缓存外部的情况下将“this”传递到承诺中
- 如何仅替换一些“this”外部函数
- 为什么$(this)选择器在我的函数内部工作,而在外部工作
- 如何调用外部"this"在内部函数中
- 使用browserify请求外部库时出错(this = undefined)
- 在JavaScript中,如何得到'this'外部对象的对象的方法,该对象是外部对象中数组的元素
- 最简单的是什么?从javascript内部回调中访问外部this的最短方式
- 如何从jQuery函数访问外部this