正确使用$(this).find

时间:2013-03-30 20:09:12

标签: jquery jquery-mobile

我正在尝试替换

下面的数据主题内容

在功能和页脚内部有效....

     $(this).find('[data-role="footer"] h4').html(siteData.name);
     $(this).find("data-theme").html(siteData.theme);

HTML

<div data-role="page" id="index">
    <div data-theme="a" data-role="header">
        <h3></h3>

    </div>

    <div data-role="content">

    </div>

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div>

我想要做的就是替换数据主题的“a”中的什么

正确的方法是什么?

2 个答案:

答案 0 :(得分:2)

如果我理解,您正在尝试更改主题属性?

$(this).find("[data-theme]").attr("data-theme", "b")

是吗?

答案 1 :(得分:1)

这就是你要找的东西。替换数据属性的值?   只是为了使其更具限制性,您可以添加上下文。

  alert($('div[data-theme]','#index').data('theme'));
    $('div[data-theme]','#index').data('theme','new');
    alert($('div[data-theme]','#index').data('theme'));

http://jsfiddle.net/uhRHD/

有关此内容的更多信息: - http://api.jquery.com/data/

As of jQuery 1.4.3 HTML 5 data- attributes will be automatically pulled in to jQuery's data object. The treatment of attributes with embedded dashes was changed in jQuery 1.6 to conform to the W3C HTML5 specification.
The data- attributes are pulled in the first time the data property is accessed and then are no longer accessed or mutated (all data values are then stored internally in jQuery).