Javascript 在js循环中创建调用js函数的HTML链接
我试图表示搜索的结果。在某些信息旁边,用户可以单击标题并进入详细信息页面Javascript 在js循环中创建调用js函数的HTML链接,javascript,jquery,html,Javascript,Jquery,Html,我试图表示搜索的结果。在某些信息旁边,用户可以单击标题并进入详细信息页面 var resultDiv = "<div id='results_container'>"; $.each( result, function(i, poi) { resultDiv += "<div class=\"result\">"; resultDiv += "<p class=\"date\">" + "Date: " + poi.
var resultDiv = "<div id='results_container'>";
$.each( result, function(i, poi) {
resultDiv += "<div class=\"result\">";
resultDiv += "<p class=\"date\">" + "Date: " + poi.date + ", Category: " + poi.category + "</p>";
resultDiv += "<p class=\"title\"><a id='link' onClick='loadPOI(poi)' href='#markerdetail-page'>" + poi.title + "</a></p>";
resultDiv += "<p class=\"description\">" + poi.description.substring(0,200) + "</p>";
resultDiv += "</div>";
});
resultDiv += "</div>";
var resultDiv=”“;
$。每个(结果、函数(i、poi){
结果IV+=“”;
结果div+=““+”日期:“+poi.date+”,类别:“+poi.Category+”
”;
resultDiv+=“”;
结果div+=““+poi.description.substring(0200)+”
”;
结果IV+=“”;
});
结果IV+=“”;
动态创建的HTML代码中的链接始终使用最新元素的参数调用函数。如何使用当前poi元素的参数调用函数?在这种情况下,在迭代中实际创建元素比在迭代后创建元素更有意义,这样您就可以正确引用
poi
并分配单击事件
var resultDiv = $("<div id='results_container'>");
$.each( result, function(i, poi) {
var div = $("<div class='result'>");
div.append("<p class=\"date\">" + "Date: " + poi.date + ", Category: " + poi.category + "</p>");
div.append("<p class=\"title\"><a id='link' href='#markerdetail-page'>" + poi.title + "</a></p>");
div.append("<p class=\"description\">" + poi.description.substring(0,200) + "</p>");
div.find("a").click(function(){
loadPOI(poi);
});
resultDiv.append(div);
});
resultDiv.appendTo("#someel");
var resultDiv=$(“”);
$。每个(结果、函数(i、poi){
var div=$(“”);
div.append(““+”日期:“+poi.date+”,类别:“+poi.Category+”
”;
div.append(“”;
div.append(“”+poi.description.substring(0200)+“
”);
div.find(“a”)。单击(函数(){
载荷poi(poi);
});
结果v.追加(div);
});
结果IV.附于(“#someel”);
您好如果您希望在单击链接时传递POI标题,则可以这样做
var resultDiv=“”
我希望这能对您有所帮助。我希望它在您单击它时会抛出一个错误,因为poi未定义。如果您不想打乱查询,您不应该让元素具有相同的
id
。解决了我的问题。非常感谢!:-)“this”将完整的html文件作为函数的对象。
$.each( result, function(i, poi) {
resultDiv += "<div class=\"result\">";
resultDiv += "<p class=\"date\">" + "Date: " + poi.date + ", Category: " + poi.category + "</p>";
resultDiv += "<p class=\"title\"><a id='link' onClick='loadPOI(this)' href='#markerdetail-page'>" + poi.title + "</a></p>";
resultDiv += "<p class=\"description\">" + poi.description.substring(0,200) + "</p>";
resultDiv += "</div>";
});
resultDiv += "</div>";
function loadPOI(obj) {
var title = obj.text();
console.log(title);
}