我想在单击按钮时更改输入的类型,但它不起作用。我试过这个:
$('.addPhoto').click(function(){
$(this).siblings('.auto_image').prop("type", "file");
});
它根本没有做任何事情。我在谷歌上搜索并遇到了这个: 用jQuery改变输入字段的类型
它说可以使用直接 DOM 来完成,但是我将如何选择具有 DOM 的兄弟姐妹的类?
我想在单击按钮时更改输入的类型,但它不起作用。我试过这个:
$('.addPhoto').click(function(){
$(this).siblings('.auto_image').prop("type", "file");
});
它根本没有做任何事情。我在谷歌上搜索并遇到了这个: 用jQuery改变输入字段的类型
它说可以使用直接 DOM 来完成,但是我将如何选择具有 DOM 的兄弟姐妹的类?
您可以一起替换元素,但我认为您不能只更改 type 属性,请参见我的示例。
$('.addPhoto').on("click",function(){
$(this).off("click").replaceWith("<input type='file' class='addPhoto'/>");
});
或者
$('.addPhoto').one("click",function(){
$(this).replaceWith("<input type='file' class='addPhoto'/>");
});
这是replaceWith()
http://api.jquery.com/replaceWith/的 jQuery 文档
要获取 dom 对象,只需从 jQuery 集合中获取第一项:
var domObject = $(this).siblings('.auto_image')[0]
虽然它似乎无法从更改text
为file
- http://jsfiddle.net/7HTgA/
所以我建议有两个输入,并根据需要显示/隐藏它们,而不是尝试更改单个输入的类型。
将其所有同级添加auto_image
到类型为 - 文件的类中。
$(this).siblings('.auto_image').attr('type','file')