2

デフォルトのマークアップを使用せずに、選択したハーベスト jquery を使用することは可能<select><option>abc</option></select>ですか?

この種のコードを、選択したフィールドのようなレスポンシブ ハーベストに変換したいと思います。

<!-- Language Switcher -->
<ul>
  <li><a href="abc.com/lang/german">Switch language to german</a></li>
  <li><a href="abc.com/lang/english">Switch language to english</a></li>
</ul>

または、選択したタグ (ul、li およびクラス chzn-drop、chzn-results を含む div) から選択されたハーベストが生成する完成した出力と同じように、html コードを記述しても問題ありません。そして、私はすでにそれを試しましたが、選択したJavaScriptをキックスタートしてそのブロックをそのまま使用し、何も変換しようとしない方法がわかりません。

理由は: 言語スイッチャーの選択を SEO にしたい (リンクをリンクとして持ち、オプションの data-* 属性としてではなく、読んで JavaScript でのみ反応する) 一方で、見栄えと機能を維持します。選択された選択。

編集
プラグインを変更しないとこれは不可能のようです

4

1 に答える 1

0

独自のラッパーまたはプラグインを使用して、choocen で受け入れられるようにすることができます。例:

<ul id="TesT">
  <li><a href="abc.com/lang/german">Switch language to german</a></li>
  <li><a href="abc.com/lang/english">Switch language to english</a></li>
</ul>

小さなスクリプト:

function modi(selector){
   $(selector).each(function(){
   var html ="";
   $('li',this).each(function(){
      html +='<option value="'+$('a',this).attr('href')+'">'+$('a',this).html()+'</option>';
   });
   $(this).replaceWith('<select>'+html+'</select>').chosen();
   });
}

そして、次のように呼び出します。

modi('#TesT');

現時点では、私のスクリプトは古い元のマークアップを置き換えますが、新しい要素を非表示にして追加することもできます。

于 2013-04-12T10:45:37.473 に答える