我想在点击按钮时更改输入的类型,但它不起作用。我试过这个:
$('.addPhoto').click(function(){
$(this).siblings('.auto_image').prop("type", "file");
});
根本没有做任何事情。我在谷歌搜索并发现了这个: change type of input field with jQuery
它说可以用直接DOM做到这一点,但我如何选择带有DOM的兄弟类呢?
答案 0 :(得分:3)
您可以将所有元素全部替换,但我不认为您只需更改类型属性,请参阅我的示例。
$('.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/
答案 1 :(得分:1)
要获取dom对象,只需从jQuery集合中获取第一项:
var domObject = $(this).siblings('.auto_image')[0]
虽然似乎无法从text
更改为file
- http://jsfiddle.net/7HTgA/
所以我建议有两个输入,并根据需要显示/隐藏它们,而不是试图改变单个输入的类型。
答案 2 :(得分:0)
将auto_image
类的所有兄弟节点添加到类型 - 文件。
$(this).siblings('.auto_image').attr('type','file')