2010-12-18 7 views
1

は私がドロップダウンリストを順序付けられていないリストに置き換えます。 JavaScriptの方法

<div id="edit-country-wrapper"> 
    <select id="edit-country" class="form-select" name="country"> 
    <option selected="selected" value="all">All</option> 
    <option value="canada">Canada</option> 
    <option value="usa">USA</option> 
    </select> 
</div> 

を持っており、これは私が今持っているものである

<div id="edit-country-wrapper"> 
    <ul id="edit-country" class="form-select" name="country"> 
    <li><a class="selected" href="/all">All</a></li> 
    <li><a class="" href="/canada">Canada</a></li> 
    <li><a class="" href="/usa">USA</a></li> 
    </ul> 
</div> 

にそれを変更したいです。

$(document).ready(function() { 
    $('#edit-country-wrapper select').each(function() { 
     var $select = $('<div id="location-select" />'); 
     $(this).find('option').each(function() { 
      var $option = $('<a />'); 
      $option.attr({ 
       href: '?country=' +$(this).attr('value'), 
       id: 'location-' + $(this).attr('value'), 
       class: $(this).attr('selected'), 
       html: $(this).html() 
      }); 
      $select.append($option); 
     }); 

     $(this).replaceWith($select); 
    }); 
}); 

私は順不同リストでドロップダウンリストを交換しようとしています。私はFF &クロムで動作していますが、IEでは動作しません。助けてください!!

+0

=>だから、限り、あなたはjQueryのを使用しているよう...

var $option = $('<a />', { href: '?country=' +$(this).attr('value'), id: 'location-' + $(this).attr('value'), class: $(this).attr('selected'), html: $(this).html() }); 

ていることを交換してみてください?エラーが発生しましたか? HTMLはうまく生成されますか? – alex

+0

IEはドロップダウンリストをリストに変換しませんが、FF&Chromeはリストを変換しません。 – canintex

答えて

1

attrのようにHTMLを設定することはできません(私はthinkというリンクに新しい属性を作成してhtmlという名前にします)。

はIEでは動作しませんどのような1.4

+0

私はjQuery 1.2.6を使用しています – canintex

+0

申し訳ありません... jQuery 1.3.2 – canintex

+0

@Erikその場合、あなたは 'html'をそのように設定することはできません。別のメソッド 'html()'を連鎖させたい場合、最初の引数はHTMLです。 – alex

1
$option.attr({ 
    href: '?country=' +$(this).attr('value'), 
    id: 'location-' + $(this).attr('value'), 
    class: $(this).attr('selected'), 
}).html($(this).html()); 
関連する問題