2014-04-20 47 views
0

我需要從ms-unselectedtitle這是SharePoint 2007列表中ms-vb-title的子元素中提取ID。然後這將與一個url連接在一起打開一個新窗口。窗口需要用window.open()方法打開,這樣我可以控制大小並關閉菜單。在列表中按計算列創建鏈接將不起作用,因爲它只是在包含所有菜單的選項卡中打開一個新窗口。我在這裏找到代碼(「How to get ID value from tables nested in other tables with jQuery」),但它返回一個ID數組,而不是錶行。我是新來的JavaScript/jQuery,所以我有點卡住了。請注意,我使用的ID已嵌入列表的「標題」字段中。 HTML部分是這裏...我需要連接url與SharePoint列表tr id

<TD class=ms-vb-title height="100%" sizset="50" sizcache011076027996994381="6"> 
     <TABLE onmouseover=OnItem(this) id=284 class=ms-unselectedtitle height="100%" 
    cellSpacing=0 Type="" SUrl="" UIS="1024" 
    CId="0x010010381707B6E7FC45825D794C02F54155" CType="Item" MS="0" CSrc="" HCD="" 
    COUId="" OType="0" Icon="icgen.gif||" Ext="" Perm="0x400001f07ee71bef" 
    DRef="sites/site1/M/S/Lists/MAINT_ACTIONS" Url="/sites/site1/M/S/Lists 
    /MAINT_ACTIONS/284_.000" CTXName="ctx1" sizset="50" sizcache011076027996994381="6"> 
      <TBODY beenthere="1"> 
      <TR> 
       <TD class=ms-vb width="100%"><A onclick="GoToLink(this);return false;" 
    onfocus=OnLink(this) href="/sites/site1/M/S/Lists/MAINT_ACTIONS 
    /DispForm.aspx?ID=284" target=_self>Item <IMG class=ms-hidden border=0 
    alt="Use SHIFT+ENTER to open the menu (new window)." src="/_layouts/images 
    /blank.gif" width=1 height=1></A></TD> 
       <TD><IMG style="VISIBILITY: hidden" alt=Edit src="/_layouts/images 
    /menudark.gif" width=13></TD> 
      </TR> 
      </TBODY> 
     </TABLE> 
    </TD> 

接近於是下面的代碼...

// filter out all tables with immediate parent td.ms-vb-title 
    // returns a collection 
    var ids = $('.ms-unselectedtitle').filter(function() { 
     return $(this).parent('td').hasClass('.ms-vb-title'); 

    // from resulting collection, grab all IDs 
    }).map(function() { 
     return this.id; 

    // convert to array 
    }).get(); 

有人能幫助我在這裏?請注意,我試圖從該行中的可點擊鏈接訪問ID。

+0

你可以發佈一些html結構嗎?當你說你發佈的代碼很接近時,這意味着什麼。什麼是回來,它應該返回什麼?製作[Fiddle](http://jsfiddle.net)將是最佳選擇。 –

+0

Adam,我已經用ms-vb-title代碼片段更新了帖子。另外,當我說它關閉時,get()方法返回列表中的所有ID。不過,我需要它只返回一個ID,即當前行的ID。這些行是表ms-listviewtable的兄弟,並且具有交替名稱「」和「ms-alternating」。 – pcnav

+0

因此,基本上'td'裏的'a'元素的'click'事件想要得到它所屬的'td'的ID? –

回答

0

我能夠通過在SharePoint列表中創建三列來解決此問題,最後一列將它們放在一起。

getWin1 held ...onClick='javascript:window.open("... the first part of the 
    script and was made default text for this single line text column. 

    getWin2 held ...","_blank","toolbar=0,menubar=0,top=50,left=50,width=1024, 
    height=800,scrollbars=0,resizable=0,location=0");return false;'... the 
    second single line text column. 

    getUrl concatenated the url to the ID from the list. 

    =CONCATENATE("<span><input ",getWin1,getUrl,getWin2," type='image' 
    src='https://sof.socom.mil/sites/SORDAC/M/SharePoint_System_Files/Icons 
    /Magnification_16.png'/></span>")... was put into the last column to 
    combine the three columns. 

我有文本到HTML CEWP將其轉換爲HTML腳本。不是最佳的解決方案,但它的工作。請注意,這只是標記腳本的開始和結束。