首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

$(this.id).val()不工作,当按键不工作时从类中获取的id,为什么?

$(this.id).val() 不工作可能有几个原因,下面我将详细解释这些原因以及如何解决这些问题。

基础概念

在 jQuery 中,$(selector).val() 方法用于获取或设置表单元素的值。this 关键字通常指代当前上下文中的 DOM 元素。

可能的原因及解决方法

  1. 选择器问题
    • $(this.id) 可能没有正确选择到元素,因为 this.id 返回的是一个字符串,而不是一个 DOM 元素或 jQuery 对象。
    • 解决方法:使用 $('#' + this.id) 来确保选择器是一个有效的 ID 选择器。
    • 解决方法:使用 $('#' + this.id) 来确保选择器是一个有效的 ID 选择器。
  • 上下文问题
    • 如果 this 不是指向你期望的元素,那么 this.id 也不会是你想要的 ID。
    • 解决方法:确保 this 指向正确的元素。可以在事件处理函数中打印 this 来检查。
    • 解决方法:确保 this 指向正确的元素。可以在事件处理函数中打印 this 来检查。
  • 元素不存在
    • 如果页面上不存在 ID 为 this.id 的元素,那么 $('#' + this.id) 将返回一个空的 jQuery 对象,其 .val() 方法不会有任何效果。
    • 解决方法:确保页面上存在相应的元素。
  • 事件绑定问题
    • 如果事件没有正确绑定到元素上,那么 this 可能不会指向触发事件的元素。
    • 解决方法:检查事件绑定是否正确。
    • 解决方法:检查事件绑定是否正确。

示例代码

假设我们有一个输入框和一个按钮,点击按钮时获取输入框的值:

代码语言:txt
复制
<input type="text" id="myInput" value="Hello World">
<button id="myButton">Get Value</button>
代码语言:txt
复制
$(document).ready(function() {
    $('#myButton').on('click', function() {
        var inputValue = $('#myInput').val(); // 直接使用 ID 选择器
        console.log(inputValue);
    });
});

在这个例子中,我们直接使用了 $('#myInput') 而不是 $(this.id),因为 this 在这个上下文中指向的是按钮元素,而不是输入框。

总结

  • 确保使用正确的选择器格式,如 $('#' + this.id)
  • 检查 this 是否指向正确的元素。
  • 确保页面上存在相应的元素。
  • 确保事件绑定正确。

通过这些步骤,你应该能够解决 $(this.id).val() 不工作的问题。

相关搜索:我想使用选定按钮的id,但如何从它获取id?this.id不工作当A&B在终端中工作时,为什么它在Makefile中不工作?按嵌套类列表的Id搜索时,PagingAndSortingRepository不工作当以不同的方式调用css类时,ngClass不工作吗?从redux获取数据。为什么我的加载屏幕不工作?打补丁类不工作它的定义是从dict获取的当正常的回声和管道不工作时,回声输入到程序中在vba中访问单独的excel文件时,.Select不工作。为什么?如何在调用在类中定义的函数时不获取对象ID当R shift()类型为lag时,数据表中的Ifelse不工作SpringBoot -当@Cacheable的方法有一个对象作为参数时,为什么@Cacheable不工作?当使用setState时,For循环在React中不工作(DOM不显示更新的数据)当<br> & \n不工作时如何在链接的.js文件中添加换行符从sql执行轮询操作后,为什么我的发送端口在biztalk中不工作?在aspnet core 3.1 web api应用程序中,当Linux中的IWebHostBuilder时,IHostBuilder不工作。当控制器位于不同的软件包(JUnit5)中时,MockMvc不工作Spring Cache -当从同一类的另一个方法调用时,@CacheEvict,@CachePut不工作当服务器有时间延迟时,select元素中的JQuery append选项不工作Swift/SpriteKit:试图从另一个不工作的类访问另一个类中的函数/方法当我尝试将ZOHO API集成到我的web site.Zoho API调用中时,在POST Man工具中工作,但在代码中不工作,为什么?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Java开发神器Lombok使用详解

    好处就显而易见了,可以节省大量重复工作,特别是当POJO类的属性增减时,需要重复修改的Getter/Setter、构造器方法、equals方法和toString方法等。...使用起来是不是很方便,最关键的是,当新增属性或减少属性时,直接删除属性定义即可,效率是否提升了很多?...) { this.id = id; this.remark = remark; } } @NoArgsConstructor 作用于类上,提供一个无参的构造方法。...=" this.id ", remark=" this.remark ")"; } } } 我们可以看到,在该类内部提供了DemoBuilder类用来处理具体的流式操作...同时提供了全参的构造方法。 小结 最后,说一下个人的看法,此神器虽然好用,但也不建议大家无条件的使用,为了程序的效率等问题,该自己亲手写的代码还是要自己亲手写。

    94020

    今天 1024,为了不 996,Lombok 用起来以及避坑指南

    Lombok简介、使用、工作原理、优缺点 Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注解,用来消除 Java 类中的大量样板代码。...一般还需要配合插件使用,在 IDEA 中需要安装 Lombok 插件即可 为什么要安装插件?...负责清理资源,当方法直接结束时,会调用 close 方法 @Setter 注解在类或字段。.../lombok Lombok工作原理 工作原理来自网上资料 在Lombok使用的过程中,只需要添加相应的注解,无需再为此写任何代码。...编译时解析 编译时解析有两种机制,分别简单描述下: 1)Annotation Processing Tool apt自JDK5产生,JDK7已标记为过期,不推荐使用,JDK8中已彻底删除,自JDK6开始

    77430

    Kotlin Vocabulary | 内联类 inline class

    声明对象 —— 包装还是不包装? 由于内联类相对于手动包装类型的最大优势是对内存分配的影响,因此请务必记住,这种影响很大程度上取决于您在何处以及如何使用内联类。....equals(doggo2) — doggo1 是原生类型但是 doggo2 被装箱了 工作原理 让我们实现一个简单的内联类: interface Id inline class DoggoId(val...有参构造函数是私有的,第二个构造函数的名字中包含了一个 "-",其在 Java 中为无效字符。这意味着无法从 Java 实例化内联类。...当需要一个对象时,Kotlin 编译器将使用原生类型的包装版本,从而每次都创建一个新的对象,例如: 可空对象 fun pet(doggoId: DoggoId?)...,我们分别覆盖了使用内联类作为参数和使用底层类型作为参数的两个函数,当我们从 Java 中调用这些函数时,就会报错。

    67430

    Kotlin Vocabulary | 内联类 inline class

    ) 没有 backing fields 不能有 init 块 不能继承其他类 不过,内联类可以做到: 从接口继承 具有属性和方法 interface Id inline class DoggoId(val...(doggo2) — doggo1 是原生类型但是 doggo2 被装箱了 工作原理 让我们实现一个简单的内联类: interface Id inline class DoggoId(val id: Long...有参构造函数是私有的,第二个构造函数的名字中包含了一个 "-",其在 Java 中为无效字符。这意味着无法从 Java 实例化内联类。...当需要一个对象时,Kotlin 编译器将使用原生类型的包装版本,从而每次都创建一个新的对象,例如: 可空对象 fun pet(doggoId: DoggoId?)...,我们分别覆盖了使用内联类作为参数和使用底层类型作为参数的两个函数,当我们从 Java 中调用这些函数时,就会报错。

    14610

    当HashMap的键遇见自定义类型时

    1 概述 这是Java中经典的问题,在面试中也经常被问起.很多书提到要重载hashCode()和equals()两个方法才能实现自定义键在HashMap中的查找,但是为什么要这样以及如果不这样做会产生什么后果...的两个键值对,并且它们的key值还是不相同的,这显然是错误的; 在获取value值时,我们分别用三个Person对象去查找,这三个对象和我们刚刚存入的三个key值(在期望中)是相同的,但是查找出的却是三个...左边参数为null,它会返回false.若参数不为null,且类型正确,则基于每一个对象中实际的id值的hashCode进行比较.从输出结果也看出,这种方式是正确的....id.hashCode() : 0; } 这里可能有疑惑的点在于:为什么可以用String类型的变量的Hash Code作为Person类的Hash Code值呢?...就是因为避免出现上述例子中的出现的情况,因为根据对Person类的hashCode()方法的重载实现,Person类会直接用id这个String类型成员的Hash Code值作为自己的Hash Code

    40530

    实现简版 react 状态管理器 mobx

    ,而是如果值为对象接着递归遍历,这是因为我们如果对根结点进行代理了,当他属性值为对象时,我们在进行重新赋值回触发 set 方法,但这里的触发是没有必要的影响性能。...用过 vue3 的朋友应该了解,effect 函数也是和内部的属性进行关联的,我们可以定义一个全局变量存储,当执行 autorun 的函数时,对该变量进行赋值,同时我们可以通过拦截的 get 方法对属性和全局的值进行关联..., key) { // 获取对象属性时,进行依赖函数的收集,一个属性可以对多个函数 reaction.collect() return Reflect.get(...[this.id] = this.store[this.id] || [] this.store[this.id].push(nowFn) } } run() { // 依次执行...this.store[this.id]?.

    1.4K30

    从零开始学 Web 之 DOM(七)事件冒泡

    事件冒泡:当有多个元素嵌套,并且这些元素绑定了相同的事件,这时候如果里面的元素事件触发了,那么外面的事件会自动触发。...,所以先不写。...2、这里使用的是鼠标输入文字后的鼠标抬起事件:onkeyup。 3、 需要准备个临时数组存储于文本框输入文字匹配的字符串。 4、当搜索框的文本为空或者临时数组的内容为空时,循环删除下拉列表。...5、之所以输入多个文字,但是只创建了一个下拉列表的原因是因为在输入第二个文字的时候,先输入的其实是字母,这个时候不匹配,而我们在每次鼠标抬起的时候会清空临时数组,所以这个时候会先删除下拉列表,当我们输入第二个文字的时候...6、每次进入鼠标抬起按键时,如果有下拉列表就循环删除。 7、注意在循环里面不要使用匿名函数。

    66630

    项目中到底该不该用 lombok?

    尤其是当一个实体类,高达几十个变量时,写完get、set方法之后,一个实体类的长度快接近一千行。...String name; //可以不用显式写get、set方法 } 使用@Data注解在类上,这个实体类中的属性就不需要显式写get、set方法了。...由于Java的官方版本没有提供这种快速生成方法的注解工具,类似Lombok这样的工具,其实都是使用了从Java 6和JSR 269的Annotation Processing技术中实现方法的注入。...简单的说,就是使用了 Java 非公开的 API,在 javac 编译代码时,通过强类型转换获取JavacAnnotationProcessor对象,再从JavacAnnotationProcessor...,都不算什么很大的坑点,在我看来,最大的坑点其实就是Lombok的工作原理,使用了非官方支持的 API 接口,通过程序强制植入方式来修改类,实现get、set等方法的注入。

    35920

    为什么有的团队严禁使用Lombok?

    尤其是当一个实体类,高达几十个变量时,写完get、set方法之后,一个实体类的长度快接近一千行。...String name; //可以不用显式写get、set方法 } 使用@Data注解在类上,这个实体类中的属性就不需要显式写get、set方法了。...由于Java的官方版本没有提供这种快速生成方法的注解工具,类似Lombok这样的工具,其实都是使用了从Java 6和JSR 269的Annotation Processing技术中实现方法的注入。...简单的说,就是使用了 Java 非公开的 API,在 javac 编译代码时,通过强类型转换获取JavacAnnotationProcessor对象,再从JavacAnnotationProcessor...,都不算什么很大的坑点,在我看来,最大的坑点其实就是Lombok的工作原理,使用了非官方支持的 API 接口,通过程序强制植入方式来修改类,实现get、set等方法的注入。

    51510
    领券