JQuery не () имеет () - PullRequest
       4

JQuery не () имеет ()

0 голосов
/ 15 марта 2011

Я работаю над страницей , на которой я динамически создаю кнопку «Нравится» Facebook, когда пользователь нажимает на значок изображения.(Поскольку на странице так много элементов, если я этого не сделал, загрузка страницы приводит к серьезному сканированию.).

Если я запускаю это в Firebug:

var $clickTrackerGroup= $("#click-tracker-91");
console.log ($(".user-message-block", $clickTrackerGroup).html());
if ($(".user-message-block:has(div.hbo-message_likeBtn)", $clickTrackerGroup)) {
        console.log("this group DOES NOT have an iframe");
} else { 
        console.log("this group DOES have an iframe"); 
    }

Я получаю это:

<div class="image-container">
    <img src="http://graph.facebook.com/1422524707/picture" id="person-222-clicked" alt="AMANDA H" title="AMANDA H" width="50px" height="50px"></div> 
    <div class="user-message"> 
        <span class="message-text">
            "ipsum lorem....."</span> 
            <div class="message-create-time"> 
                <span class="create-time">1/28/2011 7:33:17 AM</span> 
                <span class="user-name"> - Amanda H.</span> 
            </div> 
    </div>
    <div class="hbo-message_likeBtn">
        <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.honeybunchesofoats.com%2FBunchesOfLove.aspx%2FMessage%2F250&amp;layout=standard&amp;show_faces=false&amp;width=250&amp;action=like&amp;colorscheme=light&amp;height=35" 
            style="border: medium none ; overflow: hidden; width: 250px; height: 35px;" allowtransparency="true" 
            frameborder="0" scrolling="no"></iframe>
        </div>

this group does not have an iframe

Я также пытался:

if ($(".user-message-block:has(iframe)", $clickTrackerGroup)) {
    console.log("this group DOES have an iframe");
} else { 
    console.log("this group DOES NOT have an iframe"); 
    }

Вы можете ясно видеть, что этот блок HTML действительно, имеет в нем iframe.

Как мне успешно проверить наличие этого элемента?

Спасибо, Скотт

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Как насчет:

if ($(".user-message-block iframe", $clickTrackerGroup).length === 0) {
    // no iframe selected => iframe does not exist
    console.log("this group does not have an iframe");
}

Ссылка : .length

0 голосов
/ 15 марта 2011

Попробуйте

if ($(".user-message-block:has('iframe')", $clickTrackerGroup)) {
        console.log("this group does not have an iframe");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...