使用字符串表达式是否与$(this)等效?我试过$('this'),但我不能成功。
编辑:
我想减少dom元素的代码量。我想写一个自定义属性并将响应放到data-response-target-sel选择器,而不是重复我的代码。但是有时我需要通过使用“this”的上下文来基本表达这个选择器。我想为这种情况找到一个很好的解决方案。我可以为上下文添加另一个自定义属性,但在进一步开展之前我想分享我的问题。
<a class="btn btn-primary" href="#" data-response-target-sel=".modal" >
ajaxSubmit({
url: $this.attr("href"),
type: "GET",
data: {}
},$this.attr("data-response-target-sel"));
function ajaxSubmit(data,resSel) {
$.ajax({
url:data.url,
type:data.type,
data:data.data,
cache:false,
success:function (html, textStatus, jqXHR) {
var $html = $(html);
if(jqXHR.status == 200 || jqXHR.status == 201){
$(resSel).html(html)
}
}
});
}
如何使用此功能为上下文设置“data-response-target-sel”?
由于
答案 0 :(得分:1)
使用字符串表达式是否与$(this)等效?
不,除非你使用邪恶的eval
之类的东西。
为什么需要一个等同于this
的字符串?
如果我能找到类似的内容:$('kdjfk55ndns')
你会使用它吗?
如果您真的想要上述答案,请阅读https://stackoverflow.com/q/10375329/601179
请注意,$('this')
查询DOM,查找this
tagName 的元素:
<this>
<this> </this>
</this>
HTML中有很多......
<强>更新强>
function ajaxSubmit(data,resSel) {
$.ajax({
url:data.url,
type:data.type,
data:data.data,
cache:false,
context : $(resSel),
success:function (html, textStatus, jqXHR) {
var $html = $(html);
if(jqXHR.status == 200 || jqXHR.status == 201){
this.html(html)
}
}
});
}
答案 1 :(得分:0)
尝试将$(this)
定义为变量,然后使用它。
var obj = $(this);
答案 2 :(得分:0)
如果你传递了你的元素,你可以这样做:
$('selector', $this);
或在您的示例中:
$(resSel, $this).html(html)
并且不要使用
$this.attr("data-response-target-sel")
但是
$this.data("response-target-sel")