0

在 codeschool 学习时,这个变量赋值被认为是正确的。

var dailyPrice = +$(this).closest(".tour").data("daily-price");

虽然我的原始答案被认为是错误的。

var dailyPrice = +$('.tour').data('daily-price');

这是完整的 html,它只有一个“旅游”类。没有任何歧义。那为什么我的回答错了?

<div class="tour" data-daily-price="357">
  <h2>Paris, France Tour</h2>
  <p>$<span id="total">2,499</span> for <span id="nights-count">7</span> Nights</p>
  <p>
    <label for="nights">Number of Nights</label>
  </p>
  <p>
    <input id="nights" value="7" type="number">
  </p>
</div> 
4

1 回答 1

0

如果页面内有多个元素实例,这很有用tour,那么当特定input元素值发生更改时,我们需要找出相应游览的每日价格。在这种情况下,如果您使用$('.tour')它,它将始终给出第一次游览的价格,而不是输入值更改的价格。在这种情况下,我们需要找出作为所讨论tour元素的祖先的元素,这是使用.closest().

如果您确定页面中的元素永远不会超过一个tour,则无需使用.closest()

于 2013-09-22T06:09:27.120 回答