使用jquery替换标记内容

时间:2012-01-24 00:41:19

标签: javascript jquery

在我的HTML中,我有这段代码:

<div class="selfclear">
      <h3><a id="lnkName" href="/dir/subdir/?id=577">Name</a></h3>
       <address>
                       Street name, 3  <br />3222 City<br />Phone. : 0202 777 876 
        </address>
</div>

我想根据使用Jquery传递给标签内网址的ID替换电话号码。

到目前为止,我能够让id这样做:

function getID(){
    var a = $('#lnkName').attr('href').split('=');
    var id= a[1];
}

和with的内容:

function print_Address(){
    var div = $('#lnkName');
    if (!div.length) return;
    var adress = $('#lnkName').parent().siblings('address').html();
    adress.replace( '/Phone : .*/', '/Phone : 777' );
    var newtel = $('#lnkName').parent().siblings('address').html( adress );
        div.html(newtel).show('slow',function(){
          });
}

问题在于替换函数,因为print_Address()只是打印地址内容但不加载新内容

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

你想用href中的id号替换777吗?

如果是这样,你不能只做以下事情吗?

<script>
    $(function() {
        var a = $('#lnkName').attr('href').split('=');
        var id= a[1];
        $('#phone-number').text(id);
    });
</script>
<div class="selfclear">
    <h3><a id="lnkName" href="/dir/subdir/?id=577">Name</a></h3>
    <address>Street name, 3  <br />3222 City<br />Phone. : 0202 <span id="phone-number">777</span> 876</address>
</div>

答案 1 :(得分:0)

第一项业务:不要一遍又一遍地查找同样的事情。

var div = $('#lnkName');

if (!div.length) return;

var address = div.parent().siblings('address');
var addressText = address.html();
addressText.replace( '/Phone : .*/', '/Phone : 777' );
address.html( addressText ).show('slow', function(){});

其次,我不认为你的正则表达式匹配你想要匹配的东西。请注意,您的原始文本显示为“电话。:”只需将电话号码粘贴到带有课程的范围或div中即可。它会对你有所帮助,但如果你开始测试你的代码,那么它会更有帮助。

答案 2 :(得分:0)

这行有问题:

adress.replace( '/Phone : .*/', '/Phone : 777' )
  1. html
  2. 中“电话”后面有一个点
  3. 要替换的字符串不应以反斜杠'/'为前缀。
  4. 检查http://jsfiddle.net/YwgWP/

    处的可行演示