third - jquery si div id tiene hijos
jquery parent (8)
La forma jQuery
En jQuery, puede usar $(''#id'').children().length > 0
para probar si un elemento tiene hijos.
Manifestación
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>
La vainilla JS forma
Si no desea usar jQuery, puede usar document.getElementById(''id'').children.length > 0
para probar si un elemento tiene hijos.
Manifestación
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>
Esta if
condición es lo que me está causando problemas:
if (div id=myfav has children) {
do something
} else {
do something else
}
Intenté todo lo siguiente:
if ( $(''#myfav:hasChildren'') ) { do something }
if ( $(''#myfav'').children() ) { do something }
if ( $(''#myfav:empty'') ) { do something }
if ( $(''#myfav:not(:has(*))'') ) { do something }
En realidad, hay un método nativo bastante simple para esto:
if( $(''#myfav'')[0].hasChildNodes() ) { ... }
Tenga en cuenta que esto también incluye nodos de texto simple, por lo que será cierto para un <div>text</div>
.
Este fragmento determinará si el elemento tiene hijos usando el selector: :parent
if ($(''#myfav'').is('':parent'')) {
// do something
}
Tenga en cuenta que :parent
también considera un elemento con uno o más nodos de texto para ser uno de los padres.
Por lo tanto, los elementos div
en <div>some text</div>
y <div><span>some text</span></div>
se considerarán como uno de los elementos principales, pero <div></div>
no es uno de los elementos principales.
Otra opción, solo por el simple hecho de eso sería:
if ( $(''#myFav > *'').length > 0 ) {
// do something
}
De hecho, puede ser el más rápido, ya que utiliza estrictamente el motor Sizzle y no necesariamente cualquier jQuery, por así decirlo. Sin embargo, podría estar equivocado. Sin embargo, funciona.
También puedes verificar si div tiene hijos específicos o no,
if($(''#myDiv'').has(''select'').length>0)
{
// Do something here.
console.log("you can log here");
}
no funcionará echa un vistazo a esta solución
<?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);
}
}
y si desea verificar que div tiene un hijo particular (digamos <p>
use:
if ($(''#myfav'').children(''p'').length > 0) {
// do something
}
if ( $(''#myfav'').children().length > 0 ) {
// do something
}
Esto debería funcionar. La función children()
devuelve un objeto JQuery que contiene los elementos secundarios. Entonces solo necesita verificar el tamaño y ver si tiene al menos un hijo.