如果Internet Explorer是版本9或8,我试图更改表单中值的占位符,我得到了这些代码。
if( $("html").data("version") == "IE9-10" ){
var brand = $(".brand input");
var value = brand.attr("placeholder");
var model = $(".model input");
var value2 = model.attr("placeholder");
brand.val(value);
model.val(value2);
}
我想知道是否有一种方法可以使代码更简单,重复性更低,以达到同样的效果,我只需要选择.brand输入和.model输入,存储它占位符值并替换in in put价值与占位符价值,如果你们能帮助我,我将不胜感激。
这里是HTML,即时通讯使用插件将选择转换为自定义设计,但插件使用占位符,我需要支持ie9和ie8,所以生病了显示选择的html和插件的html输出。
<select name="brand" class="brand" style="display: none;">
<option value="">Marca</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
插件输出
<div class="brand">
<input type="text" value="" placeholder="Marca">
<ul>
<li data-value="volvo" class="">Volvo</li>
<li data-value="saab" class="">Saab</li>
<li data-value="mercedes" class="">Mercedes</li>
<li data-value="audi" class="">Audi</li>
<li class="minict_empty">Ningun resultado concuerda con la palabra.</li>
</ul>
</div>
答案 0 :(得分:2)
尝试
$('.brand, .model').find('input').val(function(){
return this.placeholder;
// or $(this).attr('placeholder'); if IE cannot access the attribute directly
});
答案 1 :(得分:1)
由于您在每个操作上执行相同的操作,您可以组合选择器并使用.each()
:
if( $("html").data("version") == "IE9-10" ){
$(".brand input, .model input").each(function () {
// In this function, "this" is the raw DOM element being iterated over,
// so $(this) is a jQuery wrapper around that element.
var $this = $(this); // I like caching to save jQuery constructor calls :-)
$this.val($this.attr("placeholder"));
});
}
答案 2 :(得分:0)
$(".brand input, .model input").each(function(){
$(this).val($(this).attr("placeholder"));
});
应该这样做:)。