我正在使用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();
}
});
答案 0 :(得分:0)
尝试构建另一个选择器没有用处。这通常不会起作用(如果closestwrap
有多个类会怎么样?),它也是低效的。
只需使用find
上的closestwrap
找到您的img
元素:
$(document).ready(function(){
$('.form-submit').click(function() {
var closestwrap = $(this).closest('div[class^="wrapID-"]');
closestwrap.find('img').printElement();
});
});
我认为$.printElement
是this jQuery plugin?如果您下次在问题中包含链接,可能会有所帮助。
编辑:我检查了你的小提琴,看起来你的HTML结构有点尴尬。我在wrapID-*
div
内移动了提交按钮,因此closest
实际上找到了div
。 Check out the fiddle!
请注意,此插件在jQuery 1.9及更高版本中断,最高兼容版本为1.8。这是因为它使用已弃用的$.browser
属性进行浏览器嗅探,这些属性已在1.9中删除。您可以使用jQuery Migrate插件(as in this fiddle)或自行更新插件。有可能这些浏览器测试需要修订这些浏览器的最新版本。