в 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 }
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