如何从option标签值属性中替换值

时间:2012-11-28 16:26:25

标签: javascript jquery css

我有一个下面的场景。实际上,通过该过程,渲染后的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>

通过某些过程,它在那里使用了一些span标记,我只需要在value属性中使用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来完成。

如果可能,请建议任何一个,并将非常感谢帮助

5 个答案:

答案 0 :(得分:2)

如果你正在渲染这样的选项标签,并且你想在客户端进行更改,那么这是一个快速而又肮脏的解决方案:

$("#ht option").each(function(){
    $(this).attr("value", $($(this).attr("value")).find("a").attr("href"));
});

答案 1 :(得分: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一样。

答案 2 :(得分:1)

首先关闭当前HTML的错误。值内的所有html都有double quotes.

single Quotesescape 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();

<强> Check Fiddle

答案 3 :(得分:0)

使用jQuery:

$('option').attr({value: 'new src'});

答案 4 :(得分:0)

试试这个:

$("#ht option").each(function()
{
    $(this).val($(this).val().find("a").attr("href"));
});