Web Analytics Made Easy -
StatCounter Div cannot be found using getElementsByTagName - CodingForum

Announcement

Collapse
No announcement yet.

Div cannot be found using getElementsByTagName

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 with a class of 'myclass', 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:
    Code:
    <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>
    Last edited by Kor; Apr 2, 2009, 07:23 AM. Reason: wrap the code [code][/code]

  • #2
    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.

    Comment


    • #3
      post the HTML structure of your site (or the significant repetitive part of it - divs and links)
      KOR
      Offshore programming
      -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

      Comment


      • #4
        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.

        Code:
        <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>
        Last edited by raredesign; Apr 1, 2009, 01:03 PM.

        Comment


        • #5
          In the above posted code, I see only one div(using FF's search) having class="ms-HoverCellInActive"

          Please edit your post and add [CODE][/CODE] tags around your code.
          Digitalocean Cloud Hosting (Referral link - get $10 free credit) Fameco

          Comment

          Working...
          X