You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击quantity类输入框获取price类元素值时返回undefined的DOM遍历问题求助

解决jQuery无法获取.price元素内容的问题

我来帮你搞定这个DOM遍历的问题!你代码里的路径确实出错了,咱们一步步修正。

问题根源

你写的$(this).parent('.qty-price')是错误的——当前点击的input.quantity的直接父元素是<span class="qty">,不是.qty-price。这一步找不到元素,后面的closest('.price')自然返回undefined了。

两种可行的修正方案

方案一:通过共同父元素定位

先找到input.quantity和.price的共同父元素.qty-price,再在里面查找.price元素:

$(function() { 
  $('input.quantity').click(function() { 
    var priceContent = $(this).closest('.qty-price').find('.price').html(); 
    alert(priceContent); 
  }); 
});
  • closest('.qty-price'):从当前元素向上遍历DOM树,找到最近的带有.qty-price类的父元素,比parent()更灵活,哪怕后续DOM层级微调也能适配。
  • find('.price'):在找到的父元素内部,向下查找.price元素。

方案二:通过兄弟元素定位

因为.price是input.quantity父元素.qty的同级兄弟,所以可以直接通过兄弟关系定位:

$(function() { 
  $('input.quantity').click(function() { 
    var priceContent = $(this).parent('.qty').siblings('.price').html(); 
    alert(priceContent); 
  }); 
});
  • parent('.qty'):先找到input的直接父元素.qty。
  • siblings('.price'):获取.qty的同级兄弟元素中的.price。

验证说明

你的HTML结构里,.qty和.price同属于.qty-price的子元素,所以上述两种方案都能准确获取到$5.00的内容。

内容的提问来源于stack exchange,提问作者hanji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:07:36