Need help finding / moving dom in Javascript

I am sure this is an unnecessary question, but I looked for an hour or so and came up empty-handed, so I hoped that someone could help ...

Looking for a way to use JS (not jquery) to return the li class below when searching for "Chicken" (or whatever its value).

<li class='113252'>
    <span>Chicken</span>
</li>

I was hoping that javascript would return the li class when span was set (in this case, Chicken).

Thank!

+3
source share
2 answers

Try the following:

var spanArray = document.getElementsByTagName('span');

for (var i=0; i<spanArray.length; i++) {
    if(spanArray[i].innerHTML.toUpperCase() === 'CHICKEN')
    {
        alert(spanArray[i].parentNode.className);
        break;
    }
}

Now I'm more familiar with jQuery, but it seems to work in a script related here: http://jsfiddle.net/FranWahl/fCzYc/2/ (Updated to include break;post-match suggestions )

parentNode, , li .., .

, , .

Edit
, , , ajax333221.

Dennis , getElementByTagName ul. , li ul, , , OP ul.

ul (jsFiddle )

var ulArray = document.getElementsByTagName('ul');
var parentFound = false;

for (var i = 0; i < ulArray.length; i++) {
    var spanArray = ulArray[i].getElementsByTagName('span');

    for (var i = 0; i < spanArray.length; i++) {
        if (spanArray[i].innerHTML.toUpperCase() === 'CHICKEN') {
            alert(spanArray[i].parentNode.className);
            parentFound = true;
            break;
        }
    }

    if(parentFound)
    {
        break;
    }
}​
+5

, , :

  • ( BODY),
  • , , ,

JSFiddle: http://jsfiddle.net/vol7ron/bttQN/

function getParentClass(element, parentTag){
   if (element.tagName == parentTag.toUpperCase())
       return element.className;
   return getParentClass(element.parentNode,parentTag);
}

window.findParentClass = function (text,tagName){
    var elements = document.getElementsByTagName('body');
    for (var n=elements.length; n--;){
        var foundClass = (function searchNextChild(el){
            if (!el.children.length) {
                if (el.textContent == text) 
                   return getParentClass(el,tagName);
                return;
            }
            for (var i=0, n=el.children.length; i<n; i++)
               return searchNextChild(el.children[i]);
        })(elements[n]);

        return foundClass;
    }
};

:

alert( findParentClass('Chicken','li') );
0

All Articles