javascript - 使用parent和find来选择DOM中的一个项目

标签 javascript jquery

我有这个js用来自一些数学的新值更新跨度值。

$('.ammesso').blur(function(){
    ammesso = $(this).val();
    perc_worst ='<?php echo $az_info['perc_worst']; ?>';
    if(isNaN(ammesso)){
        console.log(ammesso);
    }else{
        flusso = ammesso*perc_worst/100;
        var jsonObject = $.parseJSON(prevs); 
        console.log(prevs);
        $.each(jsonObject, function (i, obj) {
            console.log(obj.id);
            var id_item = obj.id;
            //it gets the right value of 393
            console.log('testo: '+$(this).parent('fieldset').find('.cl'+id_item).text());
        });
        console.log('flusso calcolato: '+flusso);
    }
});

html 如下:

<fieldset>
    <label>Ammesso: </label><input type="text" name="ammesso[0]" value="" class="ammesso numerico">
    <label>Incassi previsti: </label>
        <ul id="lista">
            <li class="soff_grp">Value - <span class="cl393">CASH</span></li>
        </ul>
</fieldset>

console.log('testo: '+$(this).parent('fieldset').find('.cl'+id_item).text()); 应该返回什么现在在跨度内,但我想念出了什么问题以及为什么我无法选择跨度。 我的假设是:

  • 使用 .parent('fieldset') 我回到第一个 DOM 元素输入 和span有共同点
  • 使用 .find('.cl'+id_item) 我得到该类的第一个元素 (存在于渲染的 HTML 中)

我使用这两个选择器的方式有什么问题?根据我在 jQuery 文档中所读到的内容的理解,在我看来,选择它的正确方法!

最佳答案

输入元素的上下文在每个函数中都会丢失。 this 引用您正在迭代的 jsonObject 中的元素。您需要在每个循环外部存储元素上下文,然后在每个函数中使用它:

 var fieldset = $(this).parent('fieldset');
 $.each(jsonObject, function (i, obj) {
        console.log(obj.id);
        var id_item = obj.id;
        //it gets the right value of 393
        console.log('testo: ' + fieldset.find('.cl'+id_item).text());
 });

关于javascript - 使用parent和find来选择DOM中的一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32610144/

相关文章:

javascript - JQuery 从 onclick 函数中检索数据属性

javascript - Moment.js - 添加天数时出现奇怪的行为

javascript - jQuery 将所有 href =""替换为 onclick ="window.location="

javascript - 将方括号 () 附加到输入字段并将光标放在它们之间

javascript - 当选择单选按钮时显示新 div 的最佳方式是什么?

javascript - 创建用于展开和折叠 Accordion 的切换按钮

javascript - 动画背景图像向左滑动的最简单方法?

javascript - 有没有办法将 ReadableStream<Uint8Array> 通过管道传输到 NextApiResponse?

javascript - Material UI - 如何在页面折叠时交换网格元素的左/右垂直位置

javascript - jQuery 对话框不透明度