0

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

这是我开始的并且工作正常:

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

这是我尝试根据 url 追加的地方:

$(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 脚本根据它们所在的 URL 将“Select”或“Selectioner”添加到列表的顶部。

4

2 回答 2

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>';
    })
});​
于 2012-10-17T20:24:21.827 回答
0

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

$(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();
});


});
于 2012-10-18T14:04:44.553 回答