我想搜索并替换其中包含更改文本的整个字符串
示例:
<option value="AU">Australia</option>
<option value="AT">Austria</option>
<option value="AZ">Azerbaijan</option>
<option value="BS">Bahamas</option>
<option value="BH">Bahrain</option>
<option value="BD">Bangladesh</option>
要
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
问题当然是改变价值......意思是价值=“$ var”...... 如何使用jquery / javascript搜索和替换所有出现的内容。
非常感谢您的帮助。
答案 0 :(得分:2)
如果我正确地阅读了您的问题,那么您正在处理字符串,而不是处理元素,因此您可以使用String#replace
:
theString = theString.replace(/<option[^>]*>([^<]+)<\/option>/g, "$1");
replace
在替换字符串中查找特殊序列,并从匹配事件的信息中填充它们。在这种情况下,我使用捕获组捕获<option...>
和</option>
之间的位,然后使用$1
将整体匹配替换为第一个捕获组的内容
完整示例:Live Copy *(我之间已添加<br>
仅用于输出目的):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<script>
(function() {
"use strict";
var theString =
'<option value="AU">Australia</option><br>' +
'<option value="AT">Austria</option>' +
'<br><option value="AZ">Azerbaijan</option>' +
'<br><option value="BS">Bahamas</option>' +
'<br><option value="BH">Bahrain</option>' +
'<br><option value="BD">Bangladesh</option>';
theString = theString.replace(/<option[^>]*>([^<]+)<\/option>/g, "$1");
display(theString);
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
})();
</script>
</body>
</html>
答案 1 :(得分:2)
您是否尝试过这种方法:
$('option').each(function() {
var text = $(this).text();
$(this).after(text);
$(this).remove();
});
我现在无法测试它,但它应该完成这项工作。 让我知道它是怎么回事。
OR
您可以尝试这种方式:
$('option').html(function(index, html)
return html.replace(/<option[^>]*>([^<]+)<\/option>/g, "$1");
});
祝你好运!
答案 2 :(得分:0)
这应该有效:
$('select').children().each(function(i,el){
$(el).val($(el).text());
});
当然,这假设它是页面上唯一的选择元素。如果没有,你要么必须选择正确的一个,希望使用它的id,或者如果不是,可能使用eq()
。