jQuery - 通过它的data-for属性将.html()设置为元素

时间:2014-11-16 13:46:30

标签: javascript jquery html

请问,有没有办法将内容放入不知道id或类的元素中,但是它的属性是什么?我在页面的某个地方更多的是这对双胞胎:

<input id="someSpecialId" class="autocomplete"/>
<ul data-for="someSpecialId"></ul>

列表可以是页面上的任何位置,而不是输入旁边。 在jQuery中我有这个:

$(document).on('keyup', '.autocomplete', function() {
    var sectionName = 'autocomplete';
    var min_length = 2; 
    var inputID = $(this).attr('id');
    var keyword = $(this).val();
    var $output = // HERE I NEED TO PUT FOUND ELEMENT BY IT'S data-for = inputID
    if (keyword.length >= min_length) {
        $.ajax({
            url: 'php/readDB.php',
            type: 'POST',
            data: {section: sectionName, keyword:keyword},
            success:function(data){
                $output.show();
                $output.html(data);
            }
        });
    } else {
        $output.hide();
    }
});

请问您有什么想法吗?非常感谢您的回答。

2 个答案:

答案 0 :(得分:4)

var $output = $('[data-for="'+inputID+'"]');

attribute equals selector

答案 1 :(得分:2)

您可以为此使用选择器属性。一般来说,它们看起来像这样:[attribute="value"] 在你的情况下,你会使用这样的东西:

$('ul[data-for="'+inputID+'"]');

这些在CSS和jQuery中都有用。这里有一个jsFiddle以及两个例子:http://jsfiddle.net/3p6e57gw/1/