即使在html标签上也使用jquery替换

时间:2014-04-14 04:14:02

标签: jquery

听起来很简单,但我花了至少6个小时没有运气。

例如,我有以下代码

<div data-width="123">  
 <p>Hi 123</p>
 <img src="123.jpg" />
</div>

我需要每123到999转换

<div data-width="999">  
 <p>Hi 999</p>
 <img src="999.jpg" />
</div>

我尝试使用过几个&#34;替换&#34;方法,但没有任何作用。我只需要用999替换每123个。

谢谢你们!

3 个答案:

答案 0 :(得分:3)

假设您使用其他元素

进行换行
<div class='test'>
    <div data-width="123">  
     <p>Hi 123</p>
     <img src="123.jpg" />
   </div>    
 </div>

你可以做这样的事情

$('.test').html($('.test').html().replace(/123/g, '999'));

你基本上将该元素中的所有元素取出为字符串并进行字符串替换并将修改后的字符串放回元素中。

见下面的演示

http://jsfiddle.net/petrabarus/Ph5Qz/

或者你可以这样做

$('body').html($('body').html().replace(/123/g, '999'));

答案 1 :(得分:2)

试试这个......它可能对你有帮助..检查here

<强> HTML:

 <div class="target" data-width="123">  
 <p>Hi 123</p>
 <img src="123.jpg" alt="123.jpg" />
</div>

<强>脚本:

var target = $(".target");
    var _replaced = target[0].outerHTML.replace(RegExp("123", "ig"), "999");
    $(_replaced).insertAfter(target);
    target.remove();

答案 2 :(得分:1)

$('div').each(function () {
if ($(this).data('width') == '123') {
    $(this).attr('data-width', '999');
    $(this).find('p').text('Hi 999')
    $(this).find('img').attr('src', '999.jpg')
}
});

DEMO