0

我有一个 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。但是,目前当我选择 children('h3') 时,我只是得到了 innerHTML 和“[object OBJECT]”的“未定义”。任何帮助,将不胜感激。

4

6 回答 6

2

使用 .text():

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

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

于 2012-05-03T16:22:42.117 回答
1

尝试

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

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

于 2012-05-03T16:25:22.843 回答
0

使用 jQuery Mobile 时要记住的一件事是,在将 HTML 交付给浏览器之后,它们会对其进行大量的重构。例如,手风琴spanh3. 我会安装 FireBug 并在 jQuery Mobile 重建它之后使用它来查看 HTML。此外,正如其他帖子所提到的,innerHTML 实际上是原生 JavaScript 的属性,而 jQuery 使用.html()and .text().

于 2012-05-03T16:35:07.283 回答
0
var currCat=$(this).closest('.subCat').children('h3').html();
于 2012-05-03T16:22:10.463 回答
0

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

于 2012-05-03T16:23:05.707 回答
0

你可以试试:

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

或者

var currCat=$(this).closest('.subCat > h3').text();
于 2012-05-03T16:23:28.107 回答