在父级的父级中选择元素

时间:2012-05-03 16:20:48

标签: jquery jquery-mobile

我有一个jQuery Mobile手风琴菜单设置如下:

<div class="subCat" data-role="collapsible">
    <h3>Subcategory Name</h3>
    <div class="itemImg">
        <img alt="Item 1" src="[image location]" /><span>Item 1</span>
    </div>
    <div class="itemImg">
        <img alt="Item 1" src="[image location]" /><span>Item 1</span>
    </div>
</div><!--End of subCat-->

其中有几个子类别。单击图像时,我有一些代码可以获得“子类别名称”:

var currCat=$(this).closest('.subCat').children('h3').innerHTML;

“this”是被点击的图像,我需要将“子类别名称”添加到currCat中。但是,当我选择子项('h3')时,我正在为innerHTML和“[object OBJECT]”获取“undefined”。任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:2)

使用.text():

var currCat=$(this).closest('.subCat').children('h3').text();

您也可以使用.html(),两者都可以。

答案 1 :(得分:1)

尝试

$('img').click(function(e) {
    var currCat = $(this).closest('.subCat').children('h3').text();
    e.preventDefault();
});

jsFiddle:http://jsfiddle.net/zvyjH/

答案 2 :(得分:0)

var currCat=$(this).closest('.subCat').children('h3').html();

答案 3 :(得分:0)

你试过var currCat=$(this).closest('.subCat').children('h3').html();

吗?

答案 4 :(得分:0)

你可以尝试:

$('.subCat > h3').text();

var currCat=$(this).closest('.subCat > h3').text();

答案 5 :(得分:0)

使用jQuery Mobile时要记住的一件事是,在将HTML传送到浏览器后,它们会对HTML进行大量的重构。例如,手风琴在span内插入了几层h3标签。我会安装FireBug并在jQuery Mobile重构之后使用它来查看HTML。另外,正如其他帖子所提到的,innerHTML实际上是本机JavaScript的属性,而jQuery使用.html().text()