我有一个下面的场景。实际上,通过该过程,渲染后的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来完成。
如果可能,请建议任何一个,并将非常感谢帮助
答案 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 Quotes
或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();
<强> Check Fiddle 强>
答案 3 :(得分:0)
使用jQuery:
$('option').attr({value: 'new src'});
答案 4 :(得分:0)
试试这个:
$("#ht option").each(function()
{
$(this).val($(this).val().find("a").attr("href"));
});