【问题标题】:User inputted query for reddit search API用户输入的 reddit 搜索 API 查询
【发布时间】:2014-02-22 22:01:36
【问题描述】:

现在我可以利用 reddit API 的搜索功能,我希望用户输入他们自己的查询。我是 javascript 新手,我认为我的代码的问题是 API 搜索功能在用户输入查询之前就已运行。

HTML:

<div id="site-content">
<form name="RedditSearch">
    Enter your query:
    <input type="text" name="query" onkeydown="if (event.keyCode == 13) document.getElementById('search').click()"/>
    <input type="button" id="search" value="Search" onclick="searchquery();" />
</form>    
</div>

Javascript:

var container = $('#site-content')
function searchquery()
{
 var query = document.RedditSearch.query.value;
}
 $.getJSON("http://www.reddit.com/search.json?q=" + query, function(data) {
  $.each(data.data.children, function(i,item){
    var title = item.data.title
    var post = '<div>'+title+'</div>'
    container.append(post)        

});
});

【问题讨论】:

    标签: javascript json api search reddit


    【解决方案1】:

    确实,您的 getJSON 查询似乎是在页面加载时执行的。那时用户还没有输入任何东西,所以执行得太早了。

    您需要添加一个事件侦听器来检测用户输入,然后对 reddit API 执行 AJAX 调用。

    假设您的用户在文本区域输入他的关键字,您可以使用.change()

    您可以在这里了解更多信息:http://api.jquery.com/category/events/‎ 或这里http://www.w3schools.com/jquery/event_change.asp

    你的例子:http://jsfiddle.net/2ECG6/1/

    【讨论】:

    • 感谢您的快速回复;我正在查看您发送给我的页面上的示例,但我仍然无法确定在何处包含更改功能。我什至看不到示例中的函数如何与“糖果”选项列表连接,因为 JS 似乎没有调用它。我假设我会在我的函数前面包含 change() (数据)运行 reddit API,但它如何知道要查找更改的变量?
    • @user3253373 我添加了一个 W3school 链接,它提供了更多信息和一个非常好的使用示例!
    • 对不起,我对 JS 的无能可怕,但是当你提到 $(user-input) 时,你指的是我的 searchquery() 函数吗?考虑到这是从我的 HTML 输入框中提取查询变量的函数。然后我会运行嵌套在 searchquery() 函数中的 $.getJSON 吗?
    • Nvm,你的小提琴回答了我所有的问题。非常感谢您的帮助!
    • 不客气!我更新了小提琴,因为它没有正确读取输入文本区域的值,现在它可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多