with crear con javascript html sharepoint createelement

javascript - crear - createElement<a href=variable1> variable2</a>



document.createelement( input) (3)

Tengo un requisito para crear un elemento web de navegación dentro de SharePoint 2010. Estoy usando una tabla para mostrar los elementos de una lista de SharePoint y la tabla está estructurada de la siguiente manera:

Column1 = El texto a mostrar (Título) Column2 = El URL (TitleLink)

Parece que no puedo encontrar la forma de crear la etiqueta <a href></a> y poner las variables dentro de los lugares apropiados. El resultado que constantemente termino obteniendo es solo el marcado HTML en las etiquetas <th> . He buscado en bastantes lugares en google y todavía no he encontrado una buena respuesta.

A continuación se muestra el código que está funcionando muy bien en lo que respecta a la impresión de los encabezados de mi tabla con las variables. Sin embargo, detrás de ese texto impreso ( theHeaderText ) quiero poner un enlace detrás de él para que cuando el usuario haga clic, vaya a ese enlace.

var siteUrl = ''/sites/dev/''; var theCounter = 0; ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js"); function retrieveListItems() { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle(''myList''); var camlQuery = new SP.CamlQuery(); camlQuery.set_viewXml("<Where><And><IsNotNull><FieldRef Name=''Title'' /></IsNotNull> <IsNotNull><FieldRef Name=''TitleLink'' /></IsNotNull></And></Where>"); this.collListItem = oList.getItems(camlQuery); clientContext.load(collListItem); clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); } function onQuerySucceeded(sender, args) { var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); //Each column in in the SharePoint List will essentially become an array. //So make an array for each column that will be returned! var theHeaders = new Array(); var HeaderLinks = new Array(); theCounter += 1; theHeaders[theCounter - 1] = oListItem.get_item(''Title''); HeaderLinks[theCounter - 1] = oListItem.get_item(''TitleLink''); //Get the Table Element created in HTML var getTheTableTag = document.getElementById(''theTable''); //Create the headers (top level links) var createTheHeaderElements = document.createElement(''th''); createTheHeaderElements.id = ''headerTag''; var theHeaderText = document.createTextNode(theHeaders[theCounter - 1]); createTheHeaderElements.appendChild(theHeaderText); getTheTableTag.appendChild(createTheHeaderElements); }; } function onQueryFailed(sender, args) { alert(''Request failed. '' + args.get_message() + ''/n'' + args.get_stackTrace()); }


Puede utilizar td en lugar de th ya que el enlace está en negrita por defecto:

var createTheHeaderElements = document.createElement(''td''); createTheHeaderElements.id = ''headerTag''; var link = document.createElement(''a''); var theHeaderText = document.createTextNode(theHeaders[theCounter - 1]); link.setAttribute("href","www.google.com"); link.appendChild(theHeaderText); createTheHeaderElements.appendChild(link); getTheTableTag.appendChild(createTheHeaderElements);


Use setAttribute así:

var createA = document.createElement(''a''); var createAText = document.createTextNode(theCounter); createA.setAttribute(''href'', "http://google.com"); createA.appendChild(createAText); getTheTableTag.appendChild(createA);


Gracias a mwilson

Aquí hay otra muestra de código

Cambio

<body> to <body id="myBody">

Agrega a tu cuerpo:

<button onclick="outputFunction()" >click me</button>

A continuación, agregue un script fuera del cuerpo

<script type="text/javascript"> function outputFunction() { var myBodyId = document.getElementById("myBody"); var newBaitTag = document.createElement(''a''); var newBaitText = document.createTextNode("Bonus Click"); newBaitTag.setAttribute(''href'', "https://www.youtube.com/watch?v=dQw4w9WgXcQ"); // we create new things above // we append them to the page body below newBaitTag.appendChild(newBaitText); myBodyId.appendChild(newBaitTag); } </script>