jQuery试图获得<strong>标签的价值

时间:2017-11-05 23:20:32

标签: jquery each

我试图通过jQuery获取echo中的强标记的值。我在数据库中有3行,因此有3个结果。每个结果都有自己的产品名称。让我们说第1行=沙拉,第2行=长棍面包,第3行= tunasalad。如果我按下按钮:&#34; addToCart&#34;我想将tunasalad添加到数组中。我怎样才能做到这一点?我试过这个:

while($gerechten = mysqli_fetch_assoc($results)) {
  echo '
    <div class="well"> <div class="row">
      <div class="col-lg-12">
        <div class="pull-left">
          <strong class="productname" style="font-size: 17px;">' . $gerechten['productname'] . '</strong>
        </div>
        <div class="pull-right">
          <button type="button" class="btn btn-primary addToCart" name="add" id="addToCart" style="margin-top: -3px;">€'.$gerechten['price_medium'].',00  <i class="fa fa-plus" aria-hidden="true"></i></button>
        </div>
      </div>
    </div>
  </div>';
}

JavaScript的:

var i = [];

$( document ).ready(function() {        
  $('.addToCart').each(function() {
    $(this).click(function(e) {        
      i.push($('.productname').text());
      console.log(i);
    }); 
  });
});

控制台输出:

["SaladBaguetteTunasalad"]

1 个答案:

答案 0 :(得分:2)

当您点击每个.addToCart课程时,您正在呼叫i.push($('.productname').text());。这会将每个元素与productName类添加到i

相反,您要做的是使用this .parent() .find() 来添加元素使用productName.addToCart作为siblings()的相关项目。

请注意,您不能简单地使用.parent(),并且需要拨打.col-lg-12 两次,以便定位pull,因为这两个元素也是由$(document).ready(function() { $('.addToCart').each(function() { $(this).click(function(e) { i.push($(this).parent().parent().find('.productname').text()); console.log(i); }); }); }); 类分隔。

i.push($(this).closest('.row').find('.productname').text());

根据您的HTML结构,您可能会发现使用 closest() <p> and </p> tags可以更加一致地为您服务。它也更短,这总是很好:)

希望这有帮助! :)