jQuery的,如果div id有孩子

这个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 } 
 if ( $('#myfav').children().length > 0 ) { // do something } 

这应该工作。 children()函数返回一个包含子对象的JQuery对象。 所以你只需要检查大小,看看是否至less有一个孩子。

这段代码将确定元素是否有使用:parentselect器的子元素:

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

请注意:parent也将具有一个或多个文本节点的元素视为父项。

因此, <div>some text</div><div><span>some text</span></div>div元素都将被视为父项,但<div></div>不是父项。

另一个select,只是为了它的赫克将是:

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

可能实际上是最快的,因为它严格使用Sizzle引擎,并不一定是任何jQuery,因为它是。 可能是错误的。 尽pipe如此,它的工作。

其实有一个非常简单的本地方法:

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

请注意,这也包含简单的文本节点,所以对于<div>text</div>将是真实的。

如果你想检查div有一个perticular的孩子(比如说使用:

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

jQuery的方式

在jQuery中,可以使用$('#id').children().length > 0来testing一个元素是否有子元素。

演示

 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="jquery-1.12.2.min.js"></script> <div id="test"> <span>Children</span> </div> <div id="test2"> No children </div> 

它不会工作看看这个修复

 <?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); } } 

你也可以检查div是否有特定的孩子,

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