Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 如何使用jQuery/Css格式化div中的文本_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何使用jQuery/Css格式化div中的文本

Javascript 如何使用jQuery/Css格式化div中的文本,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想在div中显示从站点(例如Wikipedia)复制的文本。此文本必须严格没有计算机与Wikipedia文本一起复制的标签 我认为解决办法是设置文本的某种格式,但我不知道 就是它应该是什么样子(按OK)。但是我不想在代码中粘贴文本,我必须在文本区域中粘贴文本 事实上,如果你试图将维基百科中的内容粘贴到这个页面的文本区域,你会看到结果非常糟糕,并且带有所有html标记 HTML: jQuery: $('#btn').click(function() { var primo = documen

我想在div中显示从站点(例如Wikipedia)复制的文本。此文本必须严格没有计算机与Wikipedia文本一起复制的标签

我认为解决办法是设置文本的某种格式,但我不知道

就是它应该是什么样子(按OK)。但是我不想在代码中粘贴文本,我必须在文本区域中粘贴文本

事实上,如果你试图将维基百科中的内容粘贴到这个页面的文本区域,你会看到结果非常糟糕,并且带有所有html标记

HTML:

jQuery:

$('#btn').click(function() {
  var primo = document.getElementById('faketxt');
  var wordLimit = 130;
  var words = primo.innerHTML.replace(/(<([^>]+)>)/ig,"").split(/\s/);
  if (words.length) {
    var count = 0;
    var div = createDiv();
    var bold = false;
    words.forEach(function(word) {
      if (++count > wordLimit) {
        count = 1;
        div = createDiv();
      }
      if (div.innerHTML) {
        div.append(' ');
      }

      if (word.indexOf('<b>') != -1) {
        bold = true;
      }

      if (bold) {
        $(div).html($(div).html() + '<b>' +
          word + '</b>');
      } else {
        $(div).html($(div).html() +
          word);
      }

      if (word.indexOf('</b>') != -1) {
        bold = false;
      }
    });
  }
});

function createDiv() {
  div = document.createElement('div');
  div.className = 'fakes';
  document.getElementById('boxes').append(div);
  return div;
}
$('#btn')。单击(函数(){
var primo=document.getElementById('faketxt');
var-wordLimit=130;
var words=primo.innerHTML.replace(/([^]+)/ig,”).split(/\s/);
如果(字数、长度){
var计数=0;
var div=createDiv();
var bold=假;
words.forEach(函数(word){
如果(++计数>字数限制){
计数=1;
div=createDiv();
}
if(div.innerHTML){
第4节附加(“”);
}
if(单词索引(“”)!=-1){
粗体=真;
}
如果(粗体){
$(div.html($(div.html()+“”)+
单词+”;
}否则{
$(div.html($(div.html)()+
单词);
}
if(单词索引(“”)!=-1){
粗体=假;
}
});
}
});
函数createDiv(){
div=document.createElement('div');
div.className=‘赝品’;
document.getElementById('box').append(div);
返回div;
}
尝试使用 words=primo.textContent.replace(/(]+)>)/ig,“”).split(/\s/); 而不是
words=primo.innerHTML.replace(/(]+)>)/ig,“”).split(/\s/)

只需使用javascript或JQuery text()函数获取文本内容,而不是获取源代码的innerHTML

因此,如果您正在使用jQuery,请将words变量更改为初始化,如下所示

var words = $(primo).text().split(/\s/);

innerHTML
或jquery的
$.html()
将提取元素的内容(包括html)。但是
textContent
或jquery的
$.text()
将只获取文本


您是否尝试过使用
var words=primo.innerHTML
而不是
var words=primo.textContent
var words=$(primo.text()

是的,它正在工作,但它不能让我使用粗体和下划线功能。。。。有什么方法可以使用它们吗?抱歉,我不知道如何使用,如果不像您这样解析每个标记。如果你愿意,我可以删除我的答案。不,但是这是最好的。是的,它工作正常,但不能让我使用粗体和下划线按钮。。。。有没有办法使用它们?
$('#btn').click(function() {
  var primo = document.getElementById('faketxt');
  var wordLimit = 130;
  var words = primo.innerHTML.replace(/(&lt;([^&gt;]+)&gt;)/ig,"").split(/\s/);
  if (words.length) {
    var count = 0;
    var div = createDiv();
    var bold = false;
    words.forEach(function(word) {
      if (++count > wordLimit) {
        count = 1;
        div = createDiv();
      }
      if (div.innerHTML) {
        div.append(' ');
      }

      if (word.indexOf('<b>') != -1) {
        bold = true;
      }

      if (bold) {
        $(div).html($(div).html() + '<b>' +
          word + '</b>');
      } else {
        $(div).html($(div).html() +
          word);
      }

      if (word.indexOf('</b>') != -1) {
        bold = false;
      }
    });
  }
});

function createDiv() {
  div = document.createElement('div');
  div.className = 'fakes';
  document.getElementById('boxes').append(div);
  return div;
}
var words = $(primo).text().split(/\s/);