当前位置:首页>开发>正文

angular动态添加class 如何动态添加class样式

2023-04-10 11:33:33 互联网 未知 开发

angular动态添加class 如何动态添加class样式

如何动态添加class样式

例如使用attr()方法来获取p元素的class,JQuery代码如下:var p_class = $("p").attr("class") //获取p元素的class使用attr()方法来设置p元素的class,JQuery代码如下:1 $("p").attr("class", "high") //设置p元素的class为 "high"
在大多数情况下,它是将原来的class替换为新的class,而不是在原来的基础上追加新的class。追加样式 什么是追加class呢?假如p元素原本的class为myClass,那么追加一个名叫high的class后,class属性变为 “myClass high”,即myClass和high两种样式的叠加。JQuery提供了专门的addClass()方法来追加样式。为了使例子更容易理解,首先在 style标签里添加另一组样式:1 .high{ color:red } 2 .another{ font-style:italic color:blue }
然后在网页中添加一个“追加class类”的按钮,按钮的事件代码如下:1 $("#btn_3").click(function(){ 2 $("#nm_p").addClass("another") // 追加样式 3 })
最后当单击“追加class类”按钮时,p元素样式就会变为斜体,而先前的红色字体也会变为蓝色。此时p元素同时拥有两个class值,即"high"和"another"。在CSS中有以下两条规定。1.如果给一个元素添加了多个class值,那么就相当于合并了它们的样式。 2.如果有不同的class设定了同一样式属性,则后者覆盖前者。 在上例中,相当于给p元素添加了如下样式:1 color : red /* 字体颜色设置红色*/ 2 font-style:italic 3 color:blue
在以上的样式中,存在两个“color”属性,而后面的“color”属性会覆盖前面的“color”属性,因此最终的“color”属性的值为“blue”,而不是“red”。移除样式 如果用户单击某个按钮时,要删除class的某个值,那么可以使用与addClass()方法相反的removeClass()方法来完成,它的 作用是从匹配的元素中删除全部或者指定的class。例如可以使用如下的JQuery代码来删除p元素中值为“high”的class:1 $("p").removeClass("high") //移除p元素中值为"high"的class
如果要把p元素的两个class都删除,就要使用两次removeClass()方法,代码如下:1 $("p").removeClass("high").removeClass("another")
JQuery提供了更简单的方法。可以以空格的方式删除多个class名,代码如下:1 $("p").removeClass("high another")
另外,还可以利用removeClass()方法的一个特性来完成同样的效果。当它不带参数时,就会将class的值全部删除,JQuery代码如下:1 $("p").removeClass() //移除p元素的所有class
切换样式 JQuery中有一个方法toggle(),JQuery代码如下: 1 toggleBtn.toggle(function(){ 2 //元素显示 代码③ 3 }, function(){ 4 //元素隐藏 代码④ 5 })
toggle()方法此处的作用是交替执行代码③和代码④两个函数,如果元素原来是显示的,则隐藏它:如果元素原来是隐藏的,则显示它。此时,toggle()方法主要是控制行为上的重复切换。另外JQuery还提供了一个toggleClass()方法控制样式上的重复切换。如果类名存在则删除它,如果类名不存在则添加它。例如对p元素进行toggleClass()方法操作。1 $("p").toggleClass("another") //重复切换类名“another”
当不断单击“切换样式”按钮时,p元素的class的值就会在“myClass”和“myClass another”之间重复切换。判断是否含有某个样式 hasClass()可以用来判断元素中是甭含有某个class,如果有,则返回true,否则返回false。例如可以使用下面的代码来判断p元素中是否含有“another”的class:1 $("p").hasClass("another")
这个方法是为了增强代码可读性面产生的。

angular在ng-repeat中ng-class的怎么用

在linux中调用pmcmd命令,可根据实际需要可以写成一个shell
如下示例:
#调用执行workflow,-sv informatica集成服务,-d 域 -u 用户,-p 密码 -folder知识库下的workflow所在文件夹,-wait wf_lxl (workflow名)
pmcmd startworkflow -sv inte -d Domain_clrminfo -u Administrator -p Administrator -folder clrm_test -wait wf_lxl
如果想传递参数的话,
pmcmd startworkflow -sv inte -d Domain_clrminfo -u Administrator -p Administrator -folder clrm_test -paramfile **路径**/parameter.file -wait wf_lxl

angularjs怎么获取标签的class属性

angular.element("#element-id")

这是一个DOM操作。Angular不会帮助你获得DOM的某个属性。

你需要使用的是DOM选择器,不管是原生的也好或者像jQuery这样的库也好。

获取ID的目标地是为了操作DOM, Angular的设计思想不是这样的, 你应该用directive代替.

directive的link函数已经把作用域,元素,属性数组注入到link函数调用的参数当中了.

link(scope,element,attrs)

关于directive的详细解释,请参考: 创建自定义"指令"

angularjs怎么给header在不同的页面设置不同的class

在AngularJS中有三种方式可以设置请求头信息:
1、在http服务的在服务端发送请求时,也就是调用http()方法时,在config对象中设置请求头信息:事例如下:
$http.post(/somePath , someData , {
headers : {Authorization : authToken}
}).success(function(data, status, headers, config) {
//...
}).error(function(data, status, headers, config ) {
//...
})

这种方法的好处就是针对不同路径的请求,可以个性化配置请求头部,缺点就是,不同路径请求都需要单独配置。
2、第二种设置请求头信息的方式就是在$httpProvider.defaults.headers属性上直接配置。事例如下:
ngular.module(app, [])
.config(function($httpProvider) {
$httpProvider.defaults.headers.common = { My-Header : value }
})

$httpProvider.defaults.headers有不同的属性,如common、get、post、put等。因此可以在不同的http请求上面添加不同的头信息,common是指所有的请求方式。
这种方式添加请求头信息的优势就是可以给不同请求方式添加相同的请求头信息,缺点就是不能够为某些请求path添加个性化头信息。
3、第三种设置请求头信息的地方是$httpProvider.interceptors。也就是为请求或相应注册一个拦截器。使用这这方式我们首先需要定义一个服务。
myModule.factory(authInterceptor, function($rootScope, $cookies){
return {
request: function(config){
config.headers = config.headers || {}
if($cookies.get(token)){
config.headers.authorization = Bearer $cookies.get(token)
}
return config
},
responseError: function(response){
// ...
}
}
})

然后把上面定义的服务注册到$httpProvider.interceptors中。
fig(function($httpProvider){
$Provider.interceptors.push(authInterceptor)
})

这样,对于每次请求,不论是get还是post、put。我们都会在请求头信息中加入authorization属性。这种方式在处理验权、授权方面很有用的。但是确定就是不能够为特定的请求方式添加请求头信息。
上面总共有三种方式设置头信息,选择那种方式可以根据自己的需求。

如何用javascript为元素添加class

以给 body 标签添加 class 为例
通过 jQuery
$( body).addClass( class1 class2 )
$( body ).removeClass( class1 class2 )
支持 classList 的高级浏览器(IE10 ,Chrome,Firefox,Safari)
document.body.classList.add( class1, class2 )
document.body.classList.remove( class1, class2 )
不支持 classList 的浏览器只能通过 className 来添加
document.body.className  =  cl
[1]直接把样式赋值给className

var odiv=document.getElementById(div1)

odiv.className= div
//这样我们会得到 class ="div3" 会直接把div2样式给覆盖掉

[2]使用累加赋值给className

var odiv=document.getElementById(div1)

odiv.className =" " div3    //样式和样式之间需要空隙 ,所以加个空字符串隔开

//这样可以得到 class="div2 div3" 可以正常增加,但是我们在添加样式的时候我们得考虑下他本身之前有没有同名的样式,如果有我们添加的话就会变成累赘 比如class="div2 div3 div3"

[3]检测样式原先之前是否有相同的样式

var odiv=document.getElementById(div1) 

function hasClass(element,csName){

element.className.match(RegExp((\s|^) csName (\s|$))) //使用正则检测是否有相同的样式

}  

[4]在[3]的基础上我们就可以进行判断性给元素添加样式了     

var odiv=document.getElementById(div1) 

function hasClass(element,csName){

return  element.className.match(RegExp((\s|^) csName (\s|$))) //使用正则检测是否有相同的样式

} 

function addClass(element,csName){

if(!hasClass(element,csName)){

element.className = csName

最新文章