Mike your methodology is still quite a bit different from what I would implement.
Something roughly like this:
define([
'dojo/_base/declare',
'dijit/_WidgetsInTemplateMixin',
'jimu/BaseWidget',
'dojo/_base/html',
'esri/tasks/query',
'dojo/_base/lang',
'dojo/dom',
'dojo/dom-construct',
....
],
function (declare, _WidgetsInTemplateMixin, BaseWidget, html, query, lang, dom, domConstruct, WMSLayer, WMSLayerInfo, Extent, ArcGISDynamicMapServiceLayer, on, HorizontalSlider, TextBox) {
var clazz = declare([BaseWidget, _WidgetsInTemplateMixin], {
baseClass: 'jimu-widget-inundate',
dynalayer: null,
....
for (x in b){
var link = domConstruct.toDom('<a id="' + x + '" href="#" value="38.362933,-81.738416">' + att.name +'</a>');
domConstruct.place(link , yourDomNode);
on(link, 'click', function(){
});
}