这两个jquery表达式的含义

Meaning of this two jquery expression?

本文关键字:表达式 jquery 两个      更新时间:2023-09-26

HTML CODE

<tr class="roti">
    <td class="ts" rowspan="2">
        <input type="text" class="form-control totalSale" id="totalSaleAmountForRoti" name='totalSaleAmountForRoti' value="0" readonly>
    </td>
</tr>
<tr class="roti">
    column related class="form-control totalSale"
</tr>

它们和它们的意思有什么区别?

var $class = $(this).parent().parent().attr('class');

1)

totalSale = $(this).parents('.' + $class).find('.totalSale');

2)

totalSale = $(this).parents('.' + $class).siblings('.' + $class + ':last').find('.totalSale');

下面的代码是什么意思?

if ($(this).parent().siblings().children().hasClass('.totalSale')) { ... }

First:你的代码中缺少一些HTML。
在第二个<tr>块中,HTML无效。

第二个:对你的问题的简短回答是:No difference


想要阅读吗?

假设HTML是这样的:

<tr class="roti">
    <td class="ts" rowspan="2">
        <input type="text" class="form-control totalSale" id="totalSaleAmountForRoti" name='totalSaleAmountForRoti' value="0" readonly>
    </td>
</tr>
<tr class="roti">
    <td class="ts" rowspan="2">
        <input type="text" class="form-control totalSale" id="other_id" name='other_name' value="other_value" readonly>
    </td>
</tr>

然后,在代码中定义变量$class:

var $class = $(this).parent().parent().attr('class');

如果找到,它将被设置为祖父母的属性类的值。

这个变量定义调用由事件处理程序或绑定到元素的函数触发。
我确信这是因为$(this)


让我们假设它是第一个<input>
So $class = "roti".

.parent()是元素包装…
.parent().parent()是元素包装的第二层…
等等。
好吧?

然后


这里有两条语句,它们试图在集合元素的子元素中.find()一个类为"totalSale"的元素。<nbsp;&nbsp;&nbsp;>是啊,这个句子需要读两遍。

在这两种情况下,集合都是方法链的结果。结果将被存储为"totalSale"变量…如果发现。


现在,在给定的HTML中有两个 "totalSale"的元素。
我们来看看第一个语句:

1:

totalSale = $(this).parents('.' + $class).find('.totalSale');
从第一个<input>
  1. 检查父集合中是否有class = $class ("roti") ==> result为UNDEFINED的元素。
  2. 它不会尝试在未定义的集合中查找类为"totalSale"的子元素。
二:

totalSale = $(this).parents('.' + $class).siblings('.' + $class + ':last').find('.totalSale');
从第一个<input>
  1. 检查父集合中是否有class = $class ("roti") ==> result为UNDEFINED的元素。
  2. 对不起,也到此结束。
  3. 它不会检查在"undefined"集合中是否有一个类为"roti"的兄弟元素…当然也不是最后一个。
  4. 它也不会检查是否找到一个子类"totalSale"。

一切都停在#2。


你应该从这里开始阅读更多关于jQuery的内容。


建议

你至少应该知道你想从一个你不完全理解的代码样本中理解什么。

如果你不知道你想了解什么,这个社区不会有很大帮助。

必读:如何创建一个最小的,完整的,可验证的示例