Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类中的JavaScript替换_Javascript - Fatal编程技术网

类中的JavaScript替换

类中的JavaScript替换,javascript,Javascript,我需要删除div中只有class属性的句点(没有id——系统生成的页面) 一些文本。 我需要去掉句号。如何使用JavaScript实现这一点?没有jQuery,这里是一个老派选项: var divs = document.getElementsByTagName('div'); for (var i=0,len=divs.length;i<len;++i){ if (/(?:^|\s)myClass(?:\s|$)/.test(divs[i].className)){ //

我需要删除div中只有class属性的句点(没有id——系统生成的页面)


一些文本。

我需要去掉句号。如何使用JavaScript实现这一点?

没有jQuery,这里是一个老派选项:

var divs = document.getElementsByTagName('div');
for (var i=0,len=divs.length;i<len;++i){
  if (/(?:^|\s)myClass(?:\s|$)/.test(divs[i].className)){
    // Removes every period
    divs[i].innerHTML = divs[i].innerHTML.replace( /\./g, '' );
  }
}

如果使用jQuery,可以执行以下操作:

$(".myClass").html(function(i, html) { return html.replace(/\.$/, ""); });

那么
document.getElementsByClassName('myClass')
呢?@Rocket或
document.queryselectoral()
;这两个都不是“老派”,只在较新的浏览器中实现。在
innerHTML
上进行字符串替换之前,一切都很好,如果
包含其他元素,则会出现各种潜在问题。@TimDown我原则上同意,但不同意“各种潜在问题”。a) OP的例子非常简单明了;b) 我能想到的唯一问题是1。删除并重新添加元素将删除过程绑定的事件处理程序,或2。拉出属性内部的句点(更改名称或类)。对于这个用户来说,这不太可能是一个问题,或者对于大多数需要这种奇怪的JS-only黑客的人来说,这也是我想到的两个问题,所以我可能稍微夸大了一点。我认为你是对的,在这种特殊情况下可能是安全的,但我认为在
innerHTML
上进行字符串操作通常是危险的,许多开发人员都盲目使用,我更希望在鼓励时看到警告。执行两次查询是没有效率的。您应该使用函数形式
html()
(如我的回答中所示)或
var a=$('…');a、 html(a.html().replace(…)啊,我不知道它有一个函数形式!你知道的越多,谢谢:)
$('div.myClass').html(function(i,oldHTML){
  return oldHTML.replace( /\./g, '' );
});
$(".myClass").html(function(i, html) { return html.replace(/\.$/, ""); });