我想根据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。
答案 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();
});
});