2016-03-15 16 views
0

我可能會問一個非常基本的問題。我搜索了很多帖子,但沒有找到正確的信息。請指向正確的方向。在jQuery中訪問XSL

以下是我的情況。我正在使用jQuery/Javascript,HTML,XSL。

我有一些XML中的示例數據。數據的結構看起來像這樣

<information> 
    <qContact> 
     <name>TOM</name> 
     <phone>612656656</phone> 
     <email>[email protected]</email> 
     <empId>1221212<empId> 
    </qContact> 
    <qContact> 
     <name>SRAMK</name> 
     <phone>566541042</phone> 
     <email>[email protected]</email> 
     <empId>654212301<empId> 
    </qContact> 
    <!-- ... ---> 
</information> 

我有表,d1isplays一些信息,其中有一個超鏈接/按鈕「編輯」的表。所以當用戶點擊表格中的編輯按鈕時,我需要在文本框/單選按鈕中填充數據,我使用XSL格式。

我重視我的屏幕的樣品圖:screenshot

我不知道如何訪問XSL jQuery中或Javascript。 在html中我可以訪問,例如我正在迭代它像這樣。

<xsl:for-each select="/<xsl:for-each select="/information/qContact">"> 

<xsl:value-of select="name"/> 

這裏我有XSL節點列表,我需要他們中的一個,假設當邁克一行用戶點擊,我需要從XSL得到麥克屬性和設置他們在文本框中。

它可行嗎?

  1. 訪問jQuery中

  2. 通過特定節點在這種情況下<qContact>迭代XSL(然後讓姓名,電子郵件,電話等)?

請幫幫我。


一些更多的信息:

1)I使用HTML來創建不同的字段[文本,單選按鈕等]

2)當我保存在數據庫中的數據和重新加載的形式時,我把這些數據放入XSL中並在html頁面中訪問它。

例如:

<td><input id="empName" type="text" name="name" value="{/information/qContact/name}" /></td> 

3)I可以在裏面的jquery訪問它也。

例子:

console.log("<xsl:value-of select="/information/qContact/name>"); 

問題場景:

<xsl:for-each select="/information/qContact"> 

<a href="#" onclick="edit('Generated','{ID}','{current()}');event.returnValue=false; return false;">Edit</a> 

</xsl:for-each> 

function edit(name,id,selectData){ 
        console.log("Srikanth"); 
        console.log(selectData); // This is printing all the data inside it. 
        console.log("<xsl:value-of select="/information/name"/>"); // Not able to access like this 
        $('#name').val('<xsl:value-of select="/information/qContact/name"/>');// Not able to access like this 
        $('#email').val('<xsl:value-of select="/information/qContact/email"/>');// Not able to access like this 
        console.log(id); 

      } 

+0

你的問題還不清楚。你需要什麼XSL?你究竟如何運行它? – Tomalak

+0

編輯帖子,如果您不瞭解我的問題,請告訴我。 – srikanth

回答

0

問題標題是訪問內部的jQuery
XSL簡短的回答是:你不能。您可以使用transformNode執行xslt(取決於瀏覽器)。

但這並不是你真正想做的事情。
請記住,涉及三個步驟。

  • 加載XML和XSL和生成HTML(與JS)
  • 加載(解釋生成的HTML) - 的XML和XSLT是無法訪問的話(至少不會像你這樣做)。
  • 執行onclick處理

你生成的鏈接看起來是這樣的:

< a href="#" onclick="edit('Generated','',' 
     TOM 
     612656656 
     [email protected] 
    1221212 
    ');event.returnValue=false; return false;">Edit</a> 

爲此你需要生成所需數據的HTML或JavaScript表示。

例如生成一個JS對象名稱爲{name: 'TOM'}

<a href="#" 
     onclick="edit('Generated','{ID}',{{ name: '{name}' }});event.returnValue=false; return false;">Edit</a> 
+0

感謝您的回答。看起來像這樣我可以解決我的問題。 如何在此添加更多屬性?我的意思是如果我想在onc​​lick中傳遞電子郵件呢? Edit 這是我需要怎麼做? 如何以編輯方式訪問電子郵件和電話號碼。 這個函數的語法會有什麼變化。 函數編輯(標題,來源,名稱){ } 我看到這個錯誤。 未捕獲ReferenceError:編輯未定義。在瀏覽器控制檯中。 – srikanth

+0

添加電子郵件的正確語法是{{name:'{name}',email:'{email}'}}'edit()的第三個參數現在是一個對象。嘗試登錄'selectData.name'或'selectData.email' –

+0

謝謝,解決了我的問題。 – srikanth