2016-12-16 61 views
0

我遍历了类的每个元素,并且用bold标记代替了所有**。用JavaScript中的新值替换this()

但是,它不是我想要的输出。我用窗口警报,并检查,正则表达式正确地转换它,但$(this).html = txt似乎并没有工作。我试过使用innerHTML,val。似乎没有任何工作。

代码注释掉了,但我不能引用所有的Id,因为它可能会添加新的,因此我遍历类的每个元素。

$(document).ready(function() { 
    setTimeout(function(){ 
     var bold = /\*\*(\S(.*?\S)?)\*\*/gm; 
     $(".grid-text").each(function() { 
      var currentElement = $(this).html(); 
      var txt = currentElement.replace(bold, '<strong>$1</strong>'); 
      $(this).html= txt; 
     }); 
     // var s = document.getElementById("001_1_1").innerHTML; 
     // var txt = s.replace(bold, '<strong>$1</strong>'); 
     // document.getElementById("001_1_1").innerHTML = txt; 
    }, 3000); 
}); 
+0

什么元素'.grid,text'?尝试指定为文本而不是html – guradio

+0

'$(this).html = txt;'这意味着将txt分配给'html'属性,这是一个jQuery装饰函数,而不是元素的'html' –

+0

这是什么如何处理[tag:java]? *“'$(this).html = txt'似乎没有工作”*看起来你还没有阅读[文档](http://api.jquery.com/html/#html2)。从文档中可以清楚地看到它的使用方式。 –

回答

2

.html是一个函数:

$(this).html(txt); 
+0

我在编辑相同的答案......;) –

+0

@LouysPatriceBessette下次更好运气:) – Mairaj

+0

非常感谢! :) –

1

尝试通过TXT作为参数传递给.html()功能:

$(this).html(txt);