【问题标题】:adding class and font style to html and return html jQuery将类和字体样式添加到 html 并返回 html jQuery
【发布时间】:2019-07-01 01:12:01
【问题描述】:

找到标签后,我正在获取要添加引导类的 HTML 文本。字符串可以有多个标签,我想添加重要的字体标签

例如我得到了字符串

var temp = "<div><table id='m' class='f'></table><table></table></div>";
table = $('table', temp).addClass('table-responsive').css('color', 'red!important').css('font-family', 'FS Lola,Arial,sans-serif!important');

但我不知道如何在更改样式和字体以呈现后返回到 html 之上

我的要求是字符串是动态的,然后我想添加 类到某个元素,然后是字体样式,毕竟这是我想要的 在 div 中渲染这个 HTML

【问题讨论】:

  • “我将如何返回 html 以上”是什么意思?
  • table = $('table', temp); 似乎也不正确为 var temp = "&lt;div&gt;...&lt;/div&gt;"。你的表中有一个 DIV?
  • @JerdineSabio 我怎样才能找到表格元素并将类添加到表格中
  • 只需将您的 HTML 附加到 DOM。例如$("body").append(table);
  • @MarioVázquez 我的要求是字符串是动态的,然后我想向某个元素添加类,然后是字体样式,毕竟我想在 div 中呈现这个 HTML

标签: jquery html bootstrap-4


【解决方案1】:

CSS 总是首先呈现。所以在我的代码中,最初的字体颜色是蓝色的。

jquery 似乎无法修改 css 颜色属性,因为它无法添加重要的后缀。所以使用代码$("table").css("color","red !important"); 不起作用

我最终做的是修改 javascript 对象。使用$("table"); 选择表格后,您可以通过索引 [0] 访问其 javascript 对象; $("table")[0];.

修改 !important css 的完整脚本是:

$("table")[0].style.setProperty( 'color', 'red', 'important' );

要添加一个类,只需这样做;

// you don't need the second argument $("table", "somethingElse"). You only need the $("table")
$("table").addClass("className");

在下面试试我的代码。

$(document).ready(function(){
  var t = $("table");
  
  // jquery doesn't work
  // $("table").css("color","red");
  
  // using javascript function does work, select the javascript object via [0] index
  t[0].style.setProperty( 'color', 'red', 'important' );
  t[0].style.setProperty( 'font-family', 'FS Lola,Arial,sans-serif', 'important' );
});
table{
  border:1px solid black;
  color:blue !important;
  border-collapse:collapse;
}

table th, table td{
  padding: 4px 10px;
  border-bottom:1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <thead>
    <tr>
      <th>1</th>
      <th>2</th>
      <th>3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>A</td>
      <td>B</td>
      <td>C</td>
    </tr>
  </tbody>
</table>

【讨论】:

    【解决方案2】:

    试试这个,!important 之间需要空格

    css('color', 'red !important').css('font-family', 'FS Lola,Arial,sans-serif !important')
    

    【讨论】:

    • 这不是我的问题,我将如何返回 html。
    【解决方案3】:

    您可以像这样使用jQuery 创建一个元素:

    var table = $("<table id='m' class='f'></table>")
    

    现在该表作为jQuery 对象存在于内存中,但尚未呈现到页面。您可以动态操作表格,例如添加tr

    table.append($("<tr>"));
    

    或添加一个类:

    table.addClass("class_name");
    

    现在我们可以将它添加到页面中。假设你想把它放在你的页面正文中。你可以这样做:

    $("body").append(table);
    

    您可以将其添加到 div,而改为使用 id=whatever

    $("#whatever").append(table);
    

    编辑根据您的要求:

    var temp = $("<div><table id='m' class='f'></table><table></table></div>");
    temp.find("table").addClass('table-responsive').css('color', 'red!important').css('font-family', 'FS Lola,Arial,sans-serif!important');
    $("body").append(temp);
    

    【讨论】:

    • 嗨,这不是我的要求。我再给你解释一下。我在内存中有 HTML 字符串,它可以在那个 HTML 中有表格或 div,我想找到所有表格添加类,我还想添加样式而不是渲染那个 HTML
    • @Milind,请参阅我的回答中的编辑。如果不够清楚,请提供工作代码 sn-p 进行修改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2016-09-10
    • 2016-06-10
    相关资源
    最近更新 更多