当前位置: 首页 > 面试题库 >

在Jquery Ajax中使用选择器和$(this)

卫振
2023-03-14
问题内容

我有mouseenter获取ajax请求的事件链接,我想获取$(this)链接的选择器并获取属性。我正在context为AJAX回调设置ajax。

jQuery(document).ready(function($) {
  var request;
  $('a[rel="bookmark"]').mouseenter(function() { 
  // other stuff
  request = $.ajax({
      dataType: "JSON",
      url: '<?php echo admin_url("admin-ajax.php"); ?>',
      data: {"action": "our_ajax_function", "id": dataId},
      context: $(this).parent().get(0),
      success: function(data){
          // other stuff
          var gettitle = $(this).attr('data-title').replace('Permanent Link to ','');
      }
  })
});

但是我得到这个错误

Uncaught TypeError: Cannot read property 'replace' of undefined

我有mouseenter获取ajax请求的事件链接,我想获取$(this)链接的选择器并获取属性。我正在context为AJAX回调设置ajax。

jQuery(document).ready(function($) {
  var request;
  $('a[rel="bookmark"]').mouseenter(function() { 
  // other stuff
  request = $.ajax({
      dataType: "JSON",
      url: '<?php echo admin_url("admin-ajax.php"); ?>',
      data: {"action": "our_ajax_function", "id": dataId},
      context: $(this).parent().get(0),
      success: function(data){
          // other stuff
          var gettitle = $(this).attr('data-title').replace('Permanent Link to ','');
      }
  })
});

但是我得到这个错误

Uncaught TypeError: Cannot read property 'replace' of undefined

的HTML

<ul>
   <li>
    <a href="http://localhost/area-no-kishi/" rel="bookmark" data-title="Permanent Link To Area no Kishi" data-id="4126" target="_blank">Area no Kishi </a>
   </li>
   <li>
    <a href="http://localhost/aria-the-scarlet-ammo-hidan-no-arai/" rel="bookmark" data-title="Permanent Link To Permanent Link to Aria the Scarlet Ammo ( Hidan No Aria )" data-id="1081" target="_blank">Aria the Scarlet Ammo ( Hidan No Aria ) </a>
   </li>
</ul>

问题答案:

如果要this在回调内部引用该a元素(即处理程序绑定到的元素),请使用

context: this

代替

context: $(this).parent().get(0)

$(this).parent().get(0)选择a元素的父元素,即li元素似乎没有data-title属性。

文档中

context

该对象将成为所有与Ajax相关的回调的上下文。默认情况下,上下文是一个对象,代表调用中使用的ajax设置($.ajaxSettings与传递给的设置合并
$.ajax)。例如,将DOM元素指定为上下文将使该上下文成为请求的完整回调,如下所示:

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() {
  $( this ).addClass( "done" );
});

另请参阅AJAX成功内的$(this)无法正常工作



 类似资料:
  • Smarts is the most exclusive club in town. Everyone welcome. — Sign 有时选择性是很重要的。尽管你可以使用 if 书写任何条件语句, 但 Puppet 还提供了帮助你更容易地表达条件的额外形式,例如: 选择器(selector)和 case 语句。 操作步骤 在你的配置清单中添加如下代码: $systemtype = $operat

  • 希望能澄清一下我什么时候应该使用和。这可能不是节奏问题,但也许我错过了一些关于Golang的知识。 对于我认为基本思想是等待通道的下一个输出。不完全确定什么是可以。 例如,在cadence示例中,< code>local_activity链接并粘贴在下面: 我们不使用任何 但是,在这里的例子中,它也使用信号通道:根据外部输入改变优步节奏睡眠时间 我还会将代码粘贴到这里 你可以看到有,我不完全确定它

  • 问题内容: 我正在进行的一个项目正在与ios应用程序同时开发一个Web应用程序(出于同一目的),我希望能够使用现有的Selenium测试,但是选择器遇到了麻烦。是否存在可用于Selenium Webdriver和Appium ios的选择器类型或属性名称,因此我可以将变量设置为浏览器或应用程序,并且它们可以在两者上运行并起作用。该项目中没有人以前使用过Appium,因此我们缺乏很多知识。 我尝试使

  • 问题内容: 我有一个ListView,里面有自定义元素。我想为每个元素创建选择器。选择器本身不会很复杂,因为在项目悬停/选中/选择时,它们仅需要处理背景色。但是,这些选择器的颜色必须来自外部来源,我需要能够从变量中进行设置,因此某些简单的静态代码将无法使用。 如何以编程方式定义所有参数的扇区? 如何以编程方式将该选择器分配给特定视图? 问题答案: 您可以在StateListDrawable中添加任

  • 本文向大家介绍Jsoup 使用CSS选择器选择元素,包括了Jsoup 使用CSS选择器选择元素的使用技巧和注意事项,需要的朋友参考一下 示例 您可以在此处找到支持的选择器的详细概述。

  • 我想禁用日期时间选择器中的时间选择器。我正在使用一些参数,如picTime: false和form:"dd MM yyyy"。但是没有用...我正在使用http://eonasdan.github.io/bootstrap-datetimepicker/ Plzz给出解决方案