1

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入力を選択し、プレースホルダー値を保存し、入力値をプレースホルダーの値、皆さんがこれで私を助けてくれれば幸いです。

これが HTML です。select をカスタム デザインに変換するプラグインを使用していますが、プラグインはプレースホルダーを使用しており、ie9 と ie8 をサポートする必要があるため、select の 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>
4

3 に答える 3

2

試す

$('.brand, .model').find('input').val(function(){
   return this.placeholder;
   // or $(this).attr('placeholder'); if IE cannot access the attribute directly
});

http://jsfiddle.net/deE5A/のデモ

于 2013-09-25T22:23:00.110 に答える
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"));
    });
}
于 2013-09-25T22:22:28.107 に答える
0
$(".brand input, .model input").each(function(){
    $(this).val($(this).attr("placeholder"));
});

それはそれを行う必要があります:)。

于 2013-09-25T22:22:23.370 に答える