Jquery 面包屑新品种
基本上,这看起来很简单,我遵循了这个 当我从数据库中检索一些东西并在ulli元素上使用我自己的标准时,我面临一些问题 我的代码:Jquery 面包屑新品种,jquery,Jquery,基本上,这看起来很简单,我遵循了这个 当我从数据库中检索一些东西并在ulli元素上使用我自己的标准时,我面临一些问题 我的代码: <ol class="breadcrumb"> <liclass="item"><a href="#home">Home / </a></li> </ol> <div class="items"> <ul> <li><a href
<ol class="breadcrumb">
<liclass="item"><a href="#home">Home / </a></li>
</ol>
<div class="items">
<ul>
<li><a href="#test1">Test 1</a></li>
<li><a href="#test1">Test 2</a></li>
<ul>
<li><a href="">Level 1</a></li>
<li><a href="">Level 2</a></li>
</ul>
<li><a href="#test1">Test 3</a></li>
</ul>
</div>
$('.items a')。在('click',function()上{
变量$this=$(this),
$bc=$('');
$this.parents('li')。每个(函数(n,li){
var$a=$(li).children('a').clone();
$bc.prepend('/',$a);
});
$('.breadcrumb').html($bc.prepend(''));
返回false;
})
我真的不擅长这个。如果有人提供帮助,我们将不胜感激。如果有疑问,请使用console.log,然后按F12并转到console选项卡(我使用的是chrome)查看输出 在此处添加console.log后:
$bc = $('<div class="item"></div>');
console.log($this.parents('li'));
$bc=$('');
console.log($this.parents('li'));
我可以看到$this.parents('li')没有父母。基本上,这段代码试图做的是获取每个父li,并为每个li添加面包屑
尝试将其视为路径(例如Level 1锚定标记):
level1>父级为Li>父级为Ul>父级为Ul->父级为Div[class=“items”]
您的代码找不到任何li父级,因此无法确定创建了哪些级别。您必须遵循他们的html模式才能使其正常工作。如果有疑问,请使用console.log,然后按F12键并转到console选项卡查看输出(我使用的是chrome) 在此处添加console.log后:
$bc = $('<div class="item"></div>');
console.log($this.parents('li'));
$bc=$('');
console.log($this.parents('li'));
我可以看到$this.parents('li')没有父母。基本上,这段代码试图做的是获取每个父li,并为每个li添加面包屑
尝试将其视为路径(例如Level 1锚定标记):
level1>父级为Li>父级为Ul>父级为Ul->父级为Div[class=“items”]
您的代码找不到任何li父级,因此无法确定创建了哪些级别。您必须遵循他们的html模式才能使其正常工作。要保留html语法,请使用以下代码:
$('.items a').on('click', function() {
var $this = $(this),
$bc = $('<div class="item"></div>');
$parent = $this.parent('li');
var $a = $parent.children('a').clone();
$bc.prepend(' / ', $a);
$parent.parents('li + ul').each(function(n, li) {
console.log(li);
var $a = $(li).prev().children('a').clone();
$bc.prepend(' / ', $a);
});
$('.breadcrumb').html( $bc.prepend('<a href="#home">Home</a>') );
return false;
})
$('.items a')。在('click',function()上{
变量$this=$(this),
$bc=$('');
$parent=$this.parent('li');
var$a=$parent.children('a').clone();
$bc.prepend('/',$a);
$parent.parents('li+ul')。每个(函数(n,li){
控制台日志(li);
var$a=$(li).prev().children('a').clone();
$bc.prepend('/',$a);
});
$('.breadcrumb').html($bc.prepend(''));
返回false;
})
如果您将每个“ul”紧跟在相应的“li”之后,它应该始终有效
要保留html语法,请使用以下代码:
$('.items a').on('click', function() {
var $this = $(this),
$bc = $('<div class="item"></div>');
$parent = $this.parent('li');
var $a = $parent.children('a').clone();
$bc.prepend(' / ', $a);
$parent.parents('li + ul').each(function(n, li) {
console.log(li);
var $a = $(li).prev().children('a').clone();
$bc.prepend(' / ', $a);
});
$('.breadcrumb').html( $bc.prepend('<a href="#home">Home</a>') );
return false;
})
$('.items a')。在('click',function()上{
变量$this=$(this),
$bc=$('');
$parent=$this.parent('li');
var$a=$parent.children('a').clone();
$bc.prepend('/',$a);
$parent.parents('li+ul')。每个(函数(n,li){
控制台日志(li);
var$a=$(li).prev().children('a').clone();
$bc.prepend('/',$a);
});
$('.breadcrumb').html($bc.prepend(''));
返回false;
})
如果您将每个“ul”紧跟在相应的“li”之后,它应该始终有效
如果希望保留html语法,可以使用以下代码:
$('.items a').on('click', function() {
var $this = $(this),
$bc = $('<div class="item"></div>');
$this.parents('ul').each(function(n, ul) {
if ( $(ul).prev('li').length > 0 ) {
var $a = $(ul).prev('li').children('a').clone();
$bc.prepend(' / ', $a);
}
});
$bc.append(' / ', $this.clone());
$('.breadcrumb').html( $bc.prepend('<a href="#home">Home</a>') );
return false;
})
$('.items a')。在('click',function()上{
变量$this=$(this),
$bc=$('');
$this.parents('ul')。每个(函数(n,ul){
如果($(ul).prev('li')。长度>0){
var$a=$(ul).prev('li').children('a').clone();
$bc.prepend('/',$a);
}
});
$bc.append('/',$this.clone());
$('.breadcrumb').html($bc.prepend(''));
返回false;
})
可以找到一个示例。如果希望保留html语法,可以使用以下代码:
$('.items a').on('click', function() {
var $this = $(this),
$bc = $('<div class="item"></div>');
$this.parents('ul').each(function(n, ul) {
if ( $(ul).prev('li').length > 0 ) {
var $a = $(ul).prev('li').children('a').clone();
$bc.prepend(' / ', $a);
}
});
$bc.append(' / ', $this.clone());
$('.breadcrumb').html( $bc.prepend('<a href="#home">Home</a>') );
return false;
})
$('.items a')。在('click',function()上{
变量$this=$(this),
$bc=$('');
$this.parents('ul')。每个(函数(n,ul){
如果($(ul).prev('li')。长度>0){
var$a=$(ul).prev('li').children('a').clone();
$bc.prepend('/',$a);
}
});
$bc.append('/',$this.clone());
$('.breadcrumb').html($bc.prepend(''));
返回false;
})
可以找到一个例子。正如我上面提到的问题,我在
- 上有我自己的标准正如我上面提到的问题,我在
- 上有我自己的标准。有其他模式的方法吗?我在下面发布了另一个答案,以利用面包屑和您的语法。正如我上面提到的问题,我对
- 有自己的标准。有其他模式的方法吗?我在下面发布了另一个答案,以利用面包屑和您的语法。兄弟,我需要一些与原始帖子不同的东西,我需要类似于
- 的东西,请清楚地参考我的代码。@TooJuniorToCode。。更新了我的答案。。如果有帮助,请告诉我
- 的东西,请清楚地参考我的代码。@TooJUnitOrtCode。。更新了我的答案。。如果有帮助,请告诉我。如果我需要与原始帖子不同的东西,我需要类似于
- 上有我自己的标准。有其他模式的方法吗?我在下面发布了另一个答案,以利用面包屑和您的语法。正如我上面提到的问题,我对