Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在js循环中创建调用js函数的HTML链接_Javascript_Jquery_Html - Fatal编程技术网

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);
}