dcsimg
www.webdeveloper.com
Results 1 to 5 of 5

Thread: Div cannot be found using getElementsByTagName

  1. #1
    Join Date
    Mar 2009
    Posts
    3

    Div cannot be found using getElementsByTagName

    I have a few issues here:

    for some background, I am working with a Microsoft solution that generates report pages, but I don't want one of the links to work. My effort is to replace the link with a javascript:void(0).

    1) I am searching for a div named 'thisdiv', but the array is skipping it entirely.
    Many of the divs on the page are found, but not the one I am after, it is very strange.

    2) Even if I do find the div (in other tests), I can't get the link to be replaced without referencing document.links[i]. I can pull the same value by using document.getElementsByTagName('div')[i].childNodes[0]); but I cannot replace it with a different value. Instead I just get a JS page error saying that it is not supported or something.

    I know my code below will not work, since it is taking for granted that the only links on the page are actually in a div. So what happens when there is a link outside of the div? Then the reference that I have of document.links[i], becomes irrelevant to the position in the array based on the number of div's.

    here is what I have:

    <script type="text/javascript">
    window.onload= function(){
    DisableEnableLinks()
    }


    function DisableEnableLinks()
    {
    var elements=document.getElementsByTagName('div');
    for (i=0; i<elements.length; i++){
    //alert(document.getElementsByTagName('div')[i].className);
    //alert(document.getElementsByTagName('div')[i].childNodes[0]);
    if (document.getElementsByTagName('div')[i].className == 'thisdiv'){
    alert(document.getElementsByTagName('div')[i].className);
    document.links[i].href = "javascript:void(0)";
    }
    }
    }
    </script>

  2. #2
    Join Date
    Mar 2009
    Posts
    523
    Is the div actually "named" thisdiv, or is it of class "this.div" as your code seems to imply?

  3. #3
    Join Date
    Mar 2009
    Posts
    3
    You are right, my bad, I changed the code during the post to remove proprietary info. I am searching for a class in a div.

    <script type="text/javascript">
    window.onload= function(){
    DisableEnableLinks()
    }


    function DisableEnableLinks()
    {
    var elements=document.getElementsByTagName('div');
    for (i=0; i<elements.length; i++){
    //alert(elements[i].className);
    //alert(elements[i].childNodes[0]);
    if (elements[i].className == 'myclass'){
    alert(elements[i].className);
    document.links[i].href = "javascript:void(0)";
    }
    }
    }
    </script>

    However...

    this just became much more difficult. Even if I get this working, I don't see how I can overwrite the anchor since there isn't one! One of the JS files must be doing a getElement lookup and then using a postback or something, because on the text that I am trying to remove the link from, there is absolutely no event to cause the hyperlink.

    it is simply text with an H3 tag and a class assigned to the <tr> it is in.

  4. #4
    Join Date
    Dec 2003
    Location
    Bucharest, ROMANIA
    Posts
    15,428
    post the HTML structure of your document (or a significant part of)

  5. #5
    Join Date
    Mar 2009
    Posts
    3
    It is not pretty since it was generated by MS's PerformancePoint and is being used in Sharepoint.
    The events you see in the code below are actually for a separate drop down menu for the webpart.
    I am trying to find out how they linked
    <span>KPI Dashboard</span>
    I have been going through all of the back end JS libraries but they are written well...meaning nothing adhoc ;-)

    The problem is that even though I have a class id, and certain text I can go on, I have to leave it globably usable since each page will have a different id for the webpart as well as different text for the title.


    <table width="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
    <td id="MSOZoneCell_WebPartctl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde" vAlign="top"><table TOPLEVEL border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
    <td><table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr class="ms-WPHeader">
    <td title="KPI Dashboard" id="WebPartTitlectl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde" style="width:100%;"><h3 class="ms-standardheader ms-WPTitle"><nobr><span>KPI Dashboard</span><span id="WebPartCaptionctl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde"></span></nobr></h3></td><td align="right" style="padding-right:2px"><div style="cursor: pointer" class="ms-HoverCellInActive" onmouseout="this.className='ms-HoverCellInActive'" onmouseover="this.className='ms-HoverCellActiveDark'"><nobr><a onclick="MSOWebPartPage_OpenMenu(WebPartctl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde_Menu, this, WebPartctl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde,'False');return false;" id="WebPartctl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde_MenuLink" onkeydown="MSOMenu_KeyboardClick(WebPartctl00_m_WebPart_5dea3c6916304228a4970e4e171e2fde_MenuLink, 13, 40)" href="#"><img src="/_layouts/images/Menu1.gif" border="0" align="absmiddle" title="KPI Dashboard Web Part Menu" alt="KPI Dashboard Web Part Menu" style="padding-left:2px;" /></a></nobr></div></td>
    </tr>
    </table>

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles