3

这是一些 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 菜鸟!

-马特

4

3 回答 3

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 了。

于 2012-11-28T16:53:02.273 回答
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)。

于 2012-11-28T17:00:45.450 回答
0

你有没有尝试过类似的东西:

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

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

于 2012-11-28T16:56:33.390 回答