修改指定li元素JS的父级
modify parent of specified li element JS
我是使用"this"的新手,但如果我正确理解了这一点,我只能在另一个函数中定义的函数中使用它。
在这种情况下,我根据li项目的a href选择它,如果它符合条件,我需要添加一个类。我觉得我很接近,但错过了一些小东西,"url[1]"来自分裂。
if ($('#Navbar li a:contains(' + url[1] + ')').attr('href')) {
function () {
$(this).parent().addClass('active');
}
}
编辑:我正在循环浏览基于Li的对象,并比较href以查找匹配项。感谢所有帮助我度过难关的人。我现在对this
有了更好的理解:
$('#Navbar li a').each(function () {
if ($(this).attr('href')==url[1]) {
$(this).parent().addClass('active');
}
});
this
指的是使用它的上下文。所以this
指的是您创建的匿名函数。更好的解决方案是:
var nav_item = $('Navbar li a:contains(' + url[1] + ')');
if (nav_item.attr('href')) {
nav_item.parent().addClass('active');
}
$(this(没有指向您的目标元素(我认为没有看到完整的html代码(。尝试以下代码:
var $a =$('Navbar li a:contains(' + url[1] + ')');
if ($a.attr('href')) {
$a.parent().addClass('active');
}
$('#Navbar li a').each(function () {
if ($(this).attr('href')==url[1]) {
$(this).parent().addClass('active');
}
});
循环就是诀窍。谢谢:@baked@brenjt@Maverick
简单!:(
if ($('Navbar li a:contains(' + url[1] + ')').attr('href')) {
var that=this;
function () {
//your condition checking
$(that).parent().addClass('active');
}
}
更新::上面的代码是错误的
你也可以这样做。。。
$('Navbar li a:contains(' + url[1] + ')').on('click',function(){
if($(this).attr('href')){
if(yourCOndition){
$(this).parent().addClass('active');
}
}
});
相关文章:
- 制作一个chrome扩展,替换css和js元素
- Chosen.js:元素的宽度为0
- 拉斐尔:Chaining;.数据“;到一个拉斐尔.js元素
- 如何将onclick事件添加到joint.js元素中
- 手动呈现原型JS元素对象
- 从第三方原始javascript控制Angular JS元素
- 由于相机位置的原因,无法在场景中显示三个.js元素
- 将复杂的html/css/js元素添加到单个Wordpress页面中
- 向Fabric.js元素添加ID
- Angular Js元素未渲染
- 在属性名称中搜索带有冒号的 xpath 表达式会引发异常(节点.js元素树模块)
- 如何从 react.js 元素中删除特定的事件侦听器
- 不更新 .each 函数中的 D3.js 元素
- JavaScript 变量中的 PHP 数组 - JS 元素
- 检查变量是否为 SVG.js 元素实例
- 如何在基于 Backbone 的模板中添加数据.js元素
- 编写一个类似jQuery的JS元素选择器
- 创建 D3.js 元素 OnClick 事件的放大副本
- 如何覆盖 select2.js 元素之一的 z 索引
- Mouseover/out难题上的JS元素创建/删除