我试图通过jQuery获取echo中的强标记的值。我在数据库中有3行,因此有3个结果。每个结果都有自己的产品名称。让我们说第1行=沙拉,第2行=长棍面包,第3行= tunasalad。如果我按下按钮:" addToCart"我想将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"]
答案 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
可以更加一致地为您服务。它也更短,这总是很好:)
希望这有帮助! :)