Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 如何将HTML推送到数组中? 我有一个数组,当前正在浏览一个项目的标题 然后将此数组用作jQueryUI自动完成的源 当在HTML输入中键入内容时,autocomplete会从数组中查找标题列表 我想告诉我们在单击搜索时要附加到URL的项目的ID(它当前配置为推送标题,因为这是数组中的内容)_Javascript_Jquery_Html_Arrays_Jquery Ui - Fatal编程技术网

Javascript 如何将HTML推送到数组中? 我有一个数组,当前正在浏览一个项目的标题 然后将此数组用作jQueryUI自动完成的源 当在HTML输入中键入内容时,autocomplete会从数组中查找标题列表 我想告诉我们在单击搜索时要附加到URL的项目的ID(它当前配置为推送标题,因为这是数组中的内容)

Javascript 如何将HTML推送到数组中? 我有一个数组,当前正在浏览一个项目的标题 然后将此数组用作jQueryUI自动完成的源 当在HTML输入中键入内容时,autocomplete会从数组中查找标题列表 我想告诉我们在单击搜索时要附加到URL的项目的ID(它当前配置为推送标题,因为这是数组中的内容),javascript,jquery,html,arrays,jquery-ui,Javascript,Jquery,Html,Arrays,Jquery Ui,将ID放入数组时,标题和ID自然都会显示在“自动完成”下拉列表中。但是,我不希望显示ID,我只想根据标题提取ID,以便将其附加到url 我目前遇到的困难是,如果我尝试创建一个HTML结构作为变量来推入数组,则在键入时HTML将显示在HTML输入框中 例如: var prodResultTite = $(this).attr('ows_Title'); var prodResultID = $(this).attr('ows_ID');

将ID放入数组时,标题和ID自然都会显示在“自动完成”下拉列表中。但是,我不希望显示ID,我只想根据标题提取ID,以便将其附加到url

我目前遇到的困难是,如果我尝试创建一个HTML结构作为变量来推入数组,则在键入时HTML将显示在HTML输入框中

例如:

var prodResultTite = $(this).attr('ows_Title');
                        var prodResultID = $(this).attr('ows_ID');
                        var prodResultContainer = '<div class="result" id="' + prodID + '">' + prodTitle + '</div>';

                        //itemTitle.push($(this).attr('ows_Title'));
                        itemTitle.push(prodResultContainer);
var prodresultite=$(this.attr('ows_Title');
var prodResultID=$(this.attr('ows_ID');
var prodResultContainer=''+prodTitle+'';
//itemTitle.push($(this.attr('ows_Title'));
itemTitle.push(prodResultContainer);
这将导致输入字段显示:

'<div class="result" id="' + 125+ '">' + My Product Title + '</div>';
“”+我的产品名称+“”;
正如您所看到的,ID和标题被完美地拉过,但是HTML也被拉过

在这个实例中,HTML是否真的是div而不是字符串


任何帮助都将不胜感激:)

使用此代码,但只需注意一点

在自动完成中,您应该有一个


“seeVal”按钮和CSS用于测试输出

非常感谢快速响应。我刚刚尝试了这种方法,但不幸的是数组(自动完成下拉列表)没有填充,并且找不到标题值。(我以前随机尝试过类似的方法)对不起,我的互联网连接失败了。我不明白你的意思?据我所知,您可以使用JSON数据源进行自动完成。还有一个php文件,它接受输入(文本值)并生成JSON。请再解释一下你的意思?(我的英语不太好。)没问题,谢谢你的帮助:)。以前,由“Title”变量构建的数组工作得非常好。但是,我正在尝试将一个ID和Title在里面的div容器推送到数组中。执行此操作时(您的示例),jqueryui的autocomplete下拉列表不会显示任何可供选择的值。我希望这会有帮助。哦,你正在尝试创建一个自定义下拉列表,显示一个div而不是一个简单的文本,对吗?哦,很抱歉迟到了,我很忙,而且我的互联网连接太慢了。检查这个,它应该是你要找的。如果是,请告诉我。
<input id="search" type="text"/>

<div id="itemcontainer" style="display:none">
  <div class="item" id="id_1" title="Item 1">Item1</div>
  <div class="item" id="id_2" title="Item 2">Item2</div>
  <div class="item" id="id_3" title="Item 3">Item3</div>
  <div class="item" id="id_4" title="Item 4">Item4</div>
</div>

<input type="button" id="seeVal" value=" see autocompele html" />
.result , .result *{
  color:#f00 !important;
}
.result#id_2 ,.result#id_2 *{
  color:#00f !important;
}
$(document).ready(function(){
  /*var items = [
  {
    id:1,label:'lbl1'
  },
  {
    id:2,label:'lbl2'
  },
  {
    id:4,label:'the label3'
  },
  {
    id:5,label:'the label4'
  },
];*/

var items=[];

$('#itemcontainer').find('.item').each(function(){
  items[items.length]={'id':$(this).attr('id'),'label':$(this).html()}
});

$('#search').autocomplete({  
  minLength: 0,
  source:items,
  focus: function( event, ui ) {
    $('#search').val( ui.item.label );
    return false;
  },
  select: function( event, ui ) {
    $('#search').val( ui.item.label );

    return false;
  }
}).data( "ui-autocomplete" )._renderItem = (function( ul, item ) {
  var $div=$('<div></div>').addClass('result').attr('id',item.id).html('<a>'+item.label+'</a>');
return $( "<li>" )
.append($div)
.appendTo(ul);
});

  $('#seeVal').on('click',function(){
    alert($('.result').parent().parent().html());
  });
});