当stime元素值变化时,如何向form-control-feedback类追加文本?
解决输入框内容变化时追加提示文本的问题
你的jQuery脚本无效的核心原因是错误使用了find()方法:#stime是<input>元素,而.form-control-feedback是它的同级<span>,并非子元素。find()仅会查找当前元素的后代节点,因此无法定位到目标span,导致代码无效果。
修正后的代码方案
以下几种方式都能正确定位到目标span并实现需求:
方案1:用siblings()查找同级元素
$("#stime").change(function (e) { var time = $(this).val(); // 用$(this)替代重复选择器,更高效 $(this).siblings(".form-control-feedback").append("* Check Format Time (HH:mm)"); });
方案2:通过父元素定位
$("#stime").change(function (e) { var time = $(this).val(); $(this).parent().find(".form-control-feedback").append("* Check Format Time (HH:mm)"); });
方案3:直接选择目标span(页面中该类唯一时适用)
$("#stime").change(function (e) { var time = $(this).val(); $(".form-control-feedback").append("* Check Format Time (HH:mm)"); });
额外优化建议
- 替换重复的
$("#stime")选择器为$(this),提升代码执行效率与可读性 - 若需要实时响应输入变化(而非仅输入框失去焦点时),可将
change事件替换为input事件
内容的提问来源于stack exchange,提问作者ian
相关产品推荐
相关产品推荐

