-1

以下のシナリオがあります。実際には、html ドロップダウン ボックスをレンダリングした後の処理によって、次のような値が表示されます。

 <select id="ht" class="input-box quick-jump-menu" name="ht">
<option selected="selected" value="">Jump straight to a below option</option>

<option value="<span id="_SE_CP" _SE_CPt="default"><a href="Google.co.uk"  alt="Lakeside" target="_self" class="">Lakeside</a></span>">
       Lakeside
</option>

<option value="<span id="_SE_CP" _SE_CPt="default"><a href="http://www.google.com" alt="Alvaston Hall" target="_self" class=""></a></span>">
       Alvaston
</option>

何らかのプロセスによって、そこでいくつかのスパンタグを使用しています。以下のような値属性にURLのみが必要です

 <select id="ht" class="input-box quick-jump-menu" name="ht">
<option selected="selected" value="">Jump straight to a below option</option>

<option value="Google.co.uk">
       Lakeside
</option>

<option value="http://www.google.com">
       Alvaston
</option>

ここでは、"option" タグの "Value" 属性に URL 値を設定するだけです。これはjqueryでできると思います。

可能であればいずれかを提案してください。助けていただければ幸いです

4

5 に答える 5

2

このようにオプションタグをレンダリングしていて、クライアント側で変更したい場合は、次のような簡単で汚い解決策があります。

$("#ht option").each(function(){
    $(this).attr("value", $($(this).attr("value")).find("a").attr("href"));
});
于 2012-11-28T16:32:56.173 に答える
2
​var tempDiv=$('<div/>');
$('#ht option').each(function(){
    tempDiv.html($(this).val());
    $(this).val(​​​​​​​​​​​​​​​​​​​​​​​​​​​tempDiv.find('a').attr('href'));
});

上記のコードは、一時的な div (tempDiv) を使用して、オプション値から html をキャプチャし、href 値を抽出します。

デモ (オプションを選択): http://jsfiddle.net/A7nyd/

[更新] これは実際には @chrisgonzalez と同じ回答です。

于 2012-11-28T16:51:34.680 に答える
1

まず、現在の HTML にエラーがあります。値内のすべての html にはdouble quotes.

single Quotesそれをorで囲みescape the ones insideます。

これを試して

​$('#ht')​.after('<div id="check"></div>');

​$('#ht option').each(function(){
    if(this.value != ''){
       var $check = $('#check');
       var str = this.value;
       $check.append(str);
       var href = $check.find('a').attr('href');
       this.value = href;
       $check.empty();
    }        
});

$('#check').remove();

フィドルをチェック

于 2012-11-28T16:41:56.357 に答える
0

jQuery を使用:

$('option').attr({value: 'new src'});
于 2012-11-28T16:33:55.413 に答える
0

これを試して:

$("#ht option").each(function()
{
    $(this).val($(this).val().find("a").attr("href"));
});
于 2012-11-28T16:36:01.593 に答える