使用jquery搜索和替换变量

时间:2014-08-17 10:32:00

标签: javascript jquery search replace

我想搜索并替换其中包含更改文本的整个字符串

示例:

<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搜索和替换所有出现的内容。

非常感谢您的帮助。

3 个答案:

答案 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()