我正在使用jquery,并希望使用if语句来确定跨度的宽度以及是否大于x并在同一个对象中添加一个类
getTry(){
let headers = new HttpHeaders().set("Access-Control-Allow-Origin", "*");
const options = {headers};
return this.http.get(this.apiUrl, options)
.map((res: HttpResponse<any>) => res.body)
.subscribe( data => {
console.log(data);
this.data = data;
})
我希望“ this”将完全填充类应用于工具顶部类
答案 0 :(得分:0)
在给定的函数上下文中,this
的值不会改变,但是您可以利用jQuery为.width()
方法提供的变体:
$(".tool-tip").width(function(index, width) {
if (width > 300)
$(this).addClass("full-width");
});
它将在每个元素上使用“工具提示”类进行操作;如果您只是想影响第一个,如您的示例代码一样(如果可行),则可以检查index
参数,该参数告诉您匹配元素列表中的索引。
答案 1 :(得分:0)
在javascript中,this
指的是包含函数。可以在以下上下文中在jQuery中使用它:
$(".tool-tip").click(function(){
$(this).addClass("full-width");
})
在您的情况下,您需要再次使用标识符,即
if ($(".tool-tip").width() > 300) {
$(".tool-tip").addClass("full-width");
}
编辑:
另外,选择器将返回多个项目。您可以按照Pointy所示对其进行迭代,也可以使用$(".tool-tip").eq(0)
而不是$(".tool-tip")
答案 2 :(得分:0)
this
是函数范围的,这意味着它仅在函数内部时才具有不同的值。如果在任何函数之外调用this
,则this
指的是Window
本身。从函数内部调用this
表示函数本身,除非您从this
调用Event
,在这种情况下this
表示导致事件触发的元素。对于您而言,如果您拥有的if
语句不在函数内,则this
将引用Window
。