根据URL附加到无序列表

时间:2012-10-17 20:19:57

标签: jquery url append

我想根据URL是附加到无序列表。因此,如果我在mysite.com/es/instructions,它会将“seleccionar”附加到无序列表的顶部,如果我在mysite.com/instructions,它会将“选择”附加到无序列表的顶部。

这是我开始使用并且工作正常的方法:

$("ul.gallery").prepend('<li class="gallery-item"><a href="#">Select</a></li>'); 

这是我尝试根据网址附加的地方:

$(function(){
var url = location.pathname;
if(url.indexOf('es') > -1){
    $("ul.gallery").prepend('<li class="gallery-item"><a href="#">Selecctioner</a></li>');
 } 
 else if (url.indexOf('') > -1) { 
   $("ul.gallery").prepend('<li class="gallery-item"><a href="#">Select</a></li>'); 
 }  
});

有关为什么这不起作用的任何想法。我甚至提出了警告而不是前置语句,看它是否有效而且确实如此。

这是HTML:

<ul id="gallery-1" class="gallery list columns_3 ">
 <li class="gallery-item"> <a href="/instructions_en.pdf" title="English" class="gallery-icon"> English </a></li>
 <li class="gallery-item"> <a href="/instructions_en.pdf" title="French" class="gallery-icon"> Spanish </a></li>
 <li class="gallery-item gallery-endcol"> <a href="/instructions_en.pdf" title="German" class="gallery-icon"> German </a></li>
</ul>

应该发生的是jquery脚本将“Select”或“Selecctioner”添加到列表顶部,具体取决于它们所在的URL。

2 个答案:

答案 0 :(得分:0)

这种方法怎么样:

$(function() {
    $('ul.gallery').prepend(function() {
        return ~location.pathname.indexOf('/es')
            ? '<li class="gallery-item"><a href="#">Selecctioner</a></li>'
            : '<li class="gallery-item"><a href="#">Select</a></li>';
    })
});​

答案 1 :(得分:0)

好的,我的原始脚本正在运行,我的问题是我上面有脚本将我的列表变成了一个下拉框。我不得不将代码移到最后,因此它最后运行了。有用。以下是将其更改为我需要移动到最后的下拉列表的代码,FYI:

$(document).ready(function(){

var $listItems = $('.gallery li');
var $select = $("<select id='new-menu'>");

$.each($listItems, function(idx,obj){
  var $option = $("<option>"+ $(obj).text() +"</option>").val( $(obj).find('a').attr('href') );
  if ( $(obj).hasClass('active') ){
    $option.attr('selected', 'selected');
  }
  $select.append($option);
})

$('.gallery').after($select);
$('.gallery').remove();

// Go to page on select.

$('#new-menu').change(function(){
  var selected = $(this).find('option:selected');
  //alert('Going to: '+ selected.val());
  window.location.href = selected.val();
});


});