jQuery使用包含onclick事件的.parents()函数选择'A'标记

时间:2013-03-17 02:05:06

标签: jquery

即使我发现问题存在问题,我也无法找到解决方法。

好吧,我有一个'添加到购物车'按钮,可以采用以下两种形式的代码:

CODE 1:
<div class="cart">
    <a class="button" onclick="addToCart('710'); _gaq.push(['_trackEvent', 'Category Page', 'Add to Cart', 'Large Dual Fitting Pluto Metal Lighting Pendant Shades - Green']);">
        <span>Add to Basket</span>
    </a>
</div>

CODE 2:
<div class="cart">
    <a class="button" onclick="addToCart('710');">
        <span>Add to Basket</span>
    </a>
</div>

我有一个单独的common.js文件,它定义了addToCart()函数。我遇到的具体代码是:

if (json['success']) {  
    html = '<div class="popup-cart-info"><div class="popup-close"><a alt="Close &amp; Continue" onclick="closeCart();" title="Close &amp; Continue" ><img src="catalog/view/javascript/jquery/fancybox/fancy_close.png"></a></div>';
    MainImg = $('a[onclick="addToCart(\'' + product_id + '\');"]').parents().find('.image a img');
    AltImg = $('a[onclick="addToCart(\'' + product_id + '\');"]').parent().parent().parent().find('.left .image a img');
    if(MainImg.length) {
        html += '<div class="cart-box-img"><img style="width:150px;" src="' + MainImg.attr('src') + '" /></div>';
    } else if(AltImg.length) {
        html += '<div class="cart-box-img"><img style="width:150px;" src="' + AltImg.attr('src') + '" /></div>';
    } else {
        html += '<div class="cart-box-img"><img style="width:130px;" src="image/no_image1.jpg" title="Image Unavailable" alt="Image Unavailable" /></div>';
    }
    html += '<div class="cart-box-succ-det">' + json['success'] + '</div>';
}

分配MainImg的位似乎与CODE2一起使用但不与CODE1一起使用。两者之间的唯一区别是_gaq.push()函数。如果我在Firefox中使用FireBug并删除_gaq.push()函数,它似乎运行良好。我要做的就是传递已添加到购物车的产品的图像源。但是当它旁边还有一个功能时,它不起作用。

我的问题是,即使在onclick事件中定义了两个函数,如何使用parents()函数选择标记。

您可以在http://bit.ly/YEW2f2看到我想要实现的目标。图像是针对“新到货”而非“特色产品”获得的。

非常感谢任何帮助。 谢谢你的期待。 问候, Karthick

2 个答案:

答案 0 :(得分:0)

你可以试试这个:http://api.jquery.com/attribute-starts-with-selector/而不是[onclick = ...]

答案 1 :(得分:0)

选择器

a[onclick="addToCart('170');]

当然不匹配

<a class="button" onclick="addToCart('710'); _gaq.push(['_trackEvent', 'Cat ...

因为onclick属性不包含完全文本a[onclick="addToCart('170');],但不止于此。

要在内容开始时使用指定文字选择属性,请使用比较“operator”^=代替=