具有嵌套div的jQuery类选择器

时间:2012-11-28 16:49:33

标签: jquery

这是我需要检索一段数据的HTML的一部分。 HTML被分配给名为fullDescription的变量。

<p>testing</p>
<div class="field field-type-text field-field-video-short-desc">
    <div class="field-label">Short Description:&nbsp;</div>
    <div class="field-items">
        <div class="field-item odd">
                Demonstrates the basics of using the Content section of App Cloud Studio        
        </div>
    </div>
</div>
<div class="field field-type-text field-field-video-id">
    <div class="field-label">Video ID:&nbsp;</div>
    <div class="field-items">
            <div class="field-item odd">
                    1251462871001        
            </div>
    </div>
</div>

我希望检索视频ID号(1251462871001)。我在想这样的事情:

var videoID = $(fullDescription).find(".field.field-type-text.field-field-video-id").find(".field-item.odd").html();

虽然它不会产生任何语法错误,但它不会检索数字。

感谢您帮助jQuery noob!

-Matt

3 个答案:

答案 0 :(得分:4)

您不需要这么多选择器,请尝试:

var videoID = $(fullDescription).find(".field-field-video-id .field-item.odd").html();

我很懒,上面的代码只是为了表明你不需要那么多选择器。花了一些时间来解决这个问题后,我有一个解决方案:

var videoID = $(fullDescription).filter('.field-field-video-id').find('.odd').html();

过滤器是jQuery中排序实际为HTML的字符串的最佳方式。完成后,您将处理HTML对象并可以使用find。

答案 1 :(得分:1)

你真的不需要做一个发现。这里的代码http://jsbin.com/welcome/54447/显示了一个工作示例。

此代码将为您提供您感兴趣的div的值。

$('.field-field-video-id .field-items .field-item.odd').html();

你的'fullDescription'变量只是一个字符串还是一个jQuery对象?如果它是一个jquery对象,你可以将它传递给上面的选择器,如此

$('.field-field-video-id .field-items .field-item.odd', fullDescription).html();

如果fullDescription是一个字符串,请传入上面的$(fullDescription)。

答案 2 :(得分:0)

你尝试过类似的事情吗?

$('div.field field-type-text field-field-video-id div.field-items div.field-item.odd', fulldescription);

这将获得具有给定类的嵌套div。当你在语句之间没有空格时,这意味着这应该是一个元素。(一个元素应该是一个div,并且有一个类字段,字段类型文本等)。解析空间时,这意味着它必须是与第一部分匹配的项目的子项。最后指定完整描述时,表示在fulldescription

的上下文中搜索