如何动态设置导航栏选项卡文本?

时间:2014-03-27 05:40:48

标签: jquery html cordova navbar jquery-mobile-navbar

我希望使用脚本动态设置每个标签的名称。我不知道这样做的确切方法可以帮助我吗?Here are my tabs i need to set names dynaically

这里是html代码:

            <div data-theme="a" data-role="footer" data-position="fixed" data-tap-toggle="false">
            <div class="myNavBar" data-role="navbar" data-iconpos="top" >
                <ul>
                    <li >
                        <a href="#"  id="home_icon"  data-transition="pop" data-theme="a" data-icon="custom" class="ui-btn-active ui-state-persist" >
                            Home
                        </a>
                    </li>
                    <li >
                        <a href="favourites.html"  id="fav_icon" data-transition="pop" data-theme="a" data-icon="custom" >
                            Favorites
                        </a>
                    </li>
                    <li>
                        <a href="Recents.html" id="recent_icon" data-transition="pop" data-theme="a" data-icon="custom" >
                            Offers
                        </a>
                    </li>
                    <li>
                        <a href="Settings.html" id="setting_icon" data-transition="pop" data-theme="a" data-icon="custom" >
                            Settings
                        </a>
                    </li>
                </ul>
            </div>
       </div>

3 个答案:

答案 0 :(得分:1)

试试这个。

var i=0,
navNames = ['home_icon', 'fav_icon', 'recent_icon', 'setting_icon'];

$('.myNavBar').find('li').each(function(){
    $(this).children('a').attr('id', navNames[i])
    i++;
});

Fiddle Demo

尝试使用此方法将文本也放在导航栏上。

var i=0,
 navNames = {
                'Home': 'home_icon',
                'Favorites':'fav_icon',
                'Offers': 'recent_icon',
                'Settings': 'setting_icon'
            };

$.each(navNames, function(index, value){
    $('.myNavBar').find('li:eq('+i+')')
    .children('a').attr('id', value)
    .end().children('a').text(index);
    i++;
});

Second Demo

答案 1 :(得分:0)

试试这个

$('ul li:eq(0) a').text('Your Text') //It will change 1st li text,same way others by 1,2,3

Fiddle

答案 2 :(得分:0)

上述所有方法都是正确的,但在上面的解决方案中,标签图标隐藏,只显示更新后的文字。正确的方法是$($('.ui-btn-text')[0]).html('testing');。它会将第一个标签Home的名称更改为testing