Javascript 将通过 while 循环获取的变量传递给外部函数 [duplicate]

Javascript Passing a Variable Obtained via a While Loop to an Outside Function [duplicate]

提问人:Hernandito 提问时间:11/10/2023 最后编辑:Hernandito 更新时间:11/10/2023 访问量:35

问:

几天来,我一直在尝试解决这个问题。我正在通过一些结果来解析 Movie DB API,这些结果将显示在我的网页上。此解析是通过 AJAX 完成的。每个解析的项目都需要在 onclick 事件中嵌入一个变量,该变量应传递给外部函数。

当触发 onclick 函数时,该函数应接收此参数。该函数使用此参数/变量填充输入框。

为清楚起见,下面的代码经过高度简化(它可能包含编辑错误)。我正在尝试将变量传递给函数。但是当我点击时什么也没发生。**filmname**

        <div id=\"filmographydiv\"></div>
        <input type="text" id="myInput" onkeyup="myFunction()">


        <script>
            var resultHtml = $("<div class=\"resultDiv\">");

            let i = 1, n = pagecount
            while (i <= n) {
                $.ajax({
                    url: "https://api.themoviedb.org/3/discover/movie?api_key=0150e4123d125bdc&language=en-US&adult=false&sort_by=release_date.desc&page="+i+"&without_genres=99&with_cast=" + resourceId,
                    data: { "api_key": "0150e3d125bdc" },
                    dataType: "json",
                    success: function (result, status, xhr) {
                        for (i = 0; i < result["results"].length; i++) {
                            // Collects movie poster and mobvie name                
                            var filmname = result["results"][i]["original_title"];
                            var poster = "https://image.tmdb.org/t/p/w500/" + result["results"][i]["poster_path"];


                            var checkexist = "<img onclick='searchmovie(" + filmname + ")' src='includes/images/searchicongreen.png'";
                            
                            //The below  code enables usage of Tooltipster tip.
                            $(document).ready(function() {
                                $('.tooltip').tooltipster({
                                contentAsHTML: true,
                                });
                            }); 
                        // Renders store variable Renders the results into the pagae.r
                        resultHtml.append("<img class=\"tooltip\" title=\" "+ checkexist + " src=\"" + poster + "\" >")
                    }
                }
              });
              i += 1;
            }
                
            resultHtml.append("</div>");
            $("#filmographydiv").html(resultHtml);  
        </script>



        <script>
            function searchmovie(film) {
                $('#myInput').val(film);
            }
        </script>

为了测试,我更改了这一行:

var checkexist = "<img onclick='searchmovie()' src='includes/images/searchicongreen.png'";

而这个......

            <script>
            function searchmovie(film) {
                $('#myInput').val("Star Wars");
            }
        </script>

我的输入框正确地填写了“星球大战”

我该怎么做才能正确地将变量传递给函数?

谢谢。

JavaScript 函数 变量

评论

0赞 Bergi 11/10/2023
你的用法没有意义。您可以像使用 HTML 字符串一样使用它,但实际上它是 jQuery 集合中的 div 元素。resultHTML
0赞 Hernandito 11/10/2023
谢谢Bergi...我真的是一个 Javascript 新手。我在PHP方面有更多的经验。我设法通过搜索各种单独的主题来创建此代码,而没有了解大局。在我的整页中,我拼凑的东西设法做了很多事情。唯一缺少的功能是填充一个输入框。
0赞 Heretic Monkey 11/10/2023
在呈现字符串时,需要在字符串两边加上引号。所以它需要onclick='searchmovie(\"" + filmname + "\")'

答: 暂无答案