使用字符串查询此选择器

Jquery this selector by using string

本文关键字:选择器 查询 字符串      更新时间:2023-09-26

使用字符串表达式是否有与$(this)等效的?我尝试过$('this'),但我无法成功。

编辑:

我想减少我的 dom 元素的代码量。与其重复我的代码,我想编写一个自定义属性并将响应放在数据响应目标塞尔选择器上。但是,有时我需要通过使用"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)
        }
     }
  });

}

如何使用此功能为上下文设置"数据-响应-目标-sel"?

谢谢

使用字符串表达式是否有与 $(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)
        }
     }
  });
}

如果你传递你的元素,你可以这样做:

$('selector', $this);

或者在您的示例中:

$(resSel, $this).html(html)

并且不要使用

$this.attr("data-response-target-sel")

$this.data("response-target-sel")

尝试将$(this)定义为变量并使用它。

var obj = $(this);