0

我正在使用 jquery 1.3.2。我想获得最接近单击按钮的 div,基于它的类名的一部分,它始终以“wrapID-”开头。基本上我在具有相同 ID 的页面上有 2 个提交表单。每个提交表单附近都有一个产品图片。我需要根据单击的按钮打印图像。我的代码不起作用,有什么问题?我无权访问 html,我知道相同的 ID 无效。

$(document).ready(function(){ 

$('.form-submit').click(function() {
var closestwrap = $(this).closest('div[class^="wrapID-"]');
cls = closestwrap.attr('class');
$('.'cls+' img').printElement();
}                           
});

这是我的代码http://jsfiddle.net/gPJrB/3/

4

1 回答 1

0

尝试构建另一个选择器是没有用的。这不仅通常不起作用(如果closestwrap有多个类怎么办?),它也是低效的。

只需使用findonclosestwrap来查找您的img元素:

$(document).ready(function(){ 
    $('.form-submit').click(function() {
        var closestwrap = $(this).closest('div[class^="wrapID-"]');
        closestwrap.find('img').printElement();
    });                  
});

我假设这$.printElementjQuery 插件?如果您下次在问题中包含链接可能会有所帮助。

编辑:我检查了你的小提琴,看起来你的 HTML 结构有点尴尬。wrapID-* div我在s中移动了提交按钮,因此closest实际上找到了div. 看看小提琴!

请注意,此插件在 jQuery 1.9 及更高版本中中断,最高兼容版本为 1.8。这是因为它使用了已$.browser在 1.9 中删除的已弃用的浏览器嗅探属性。您可以使用 jQuery Migrate 插件(如在这个小提琴中)或自己更新插件。这些浏览器测试可能需要针对这些浏览器的最新版本进行修订。

于 2013-06-08T12:47:41.323 回答