в jQuery, если див ИД есть дети



этой if-условие-это то, что дает мне проблемы:



if (div id=myfav has children) {
do something
} else {
do something else
}


Я пробовал следующие:



if ( $('#myfav:hasChildren') ) { do something }
if ( $('#myfav').children() ) { do something }
if ( $('#myfav:empty') ) { do something }
if ( $('#myfav:not(:has(*))') ) { do something }
533   8  

8 ответов:

if ( $('#myfav').children().length > 0 ) {
     // do something
}

Это должно работать. Элемент children() функция возвращает объект JQuery, содержащий дочерние элементы. Поэтому вам просто нужно проверить размер и посмотреть, есть ли у него хотя бы один ребенок.

этот фрагмент будет определять, если элемент имеет детей с помощью :parent селектор:

if ($('#myfav').is(':parent')) {
    // do something
}

отметим, что :parent также считается, что элемент с одним или несколькими текстовыми узлами является родительским.

на div элементов <div>some text</div> и <div><span>some text</span></div> каждый будет считаться родителем, но <div></div> не является родителем.

еще один вариант, просто для того, чтобы это было:

if ( $('#myFav > *').length > 0 ) {
     // do something
}

на самом деле может быть самым быстрым, так как он строго использует двигатель шипения и не обязательно какой-либо jQuery, как это было. Хотя, может быть и не так. Тем не менее, это работает.

на самом деле довольно простой собственный метод для этого:

if( $('#myfav')[0].hasChildNodes() ) { ... }

обратите внимание, что это также включает в себя простые текстовые узлы, так что это будет верно для <div>text</div>.

а если вы хотите проверить див имеет детей определенным(скажем <p> использование:

if ($('#myfav').children('p').length > 0) {
     // do something
}

путь jQuery

в jQuery, вы можете использовать $('#id').children().length > 0 чтобы проверить, если элемент имеет детей.

демо

var test1 = $('#test');
var test2 = $('#test2');

if(test1.children().length > 0) {
    test1.addClass('success');
} else {
    test1.addClass('failure');
}

if(test2.children().length > 0) {
    test2.addClass('success');
} else {
    test2.addClass('failure');
}
.success {
    background: #9f9;
}

.failure {
    background: #f99;
}
<script src="https://code.jquery.com/jquery-1.12.2.min.js"></script>
<div id="test">
   <span>Children</span>
</div>
<div id="test2">
   No children
</div>

ванильный путь JS

если вы не хотите использовать jQuery, вы можете использовать document.getElementById('id').children.length > 0 чтобы проверить, если элемент имеет детей.

демо

var test1 = document.getElementById('test');
var test2 = document.getElementById('test2');

if(test1.children.length > 0) {
    test1.classList.add('success');
} else {
    test1.classList.add('failure');
}

if(test2.children.length > 0) {
    test2.classList.add('success');
} else {
    test2.classList.add('failure');
}
.success {
    background: #9f9;
}

.failure {
    background: #f99;
}
<div id="test">
   <span>Children</span>
</div>
<div id="test2">
   No children
</div>

вы также можете проверить, есть ли у div определенные дети или нет,

if($('#myDiv').has('select').length>0)
{
   // Do something here.
   console.log("you can log here");

}

это не будет работать Посмотрите на это исправление

<?php

use Behat\Behat\Context\ClosuredContextInterface,
    Behat\Behat\Context\TranslatedContextInterface,
    Behat\Behat\Context\BehatContext,
    Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
    Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;

/**
 * Features context.
 */
class FeatureContext extends MinkContext
{
    /**
     * Initializes context.
     * Every scenario gets its own context object.
     *
     * @param array $parameters context parameters (set them up through behat.yml)
     */
    public function __construct(array $parameters)
    {
        // Initialize your context here
    }
   /**
     * @When I wait for the suggestion box to appear
     */
    public function iWaitForTheSuggestionBoxToAppear()
    {
        $this->getSession()->wait(5000, "$('.suggestions-results').children().length > 0");
    }


     /**
      * @When /^I type "([^"]*)" into search box$/
      */
    public function iTypeTextIntoSearchBox($text)
    {
        $element = $this->getSession()->getPage()->findById('searchInput');
        $script = "$('#searchInput').keypress();";
        $element->setValue($text);
        $this->getSession()->evaluateScript($script); 
    }
}

Comments

    Ничего не найдено.