Привет, гуру JavaScript и Jquery. Я получаю, а затем отображаю список друзей в Facebook, используя следующий код:
<script>
function getFriends(){
var theword = '/me/friends';
FB.api(theword, function(response) {
var divInfo = document.getElementById("divInfo");
var friends = response.data;
divInfo.innerHTML += '<h1 id="header">Friends/h1><ul id="list">';
for (var i = 0; i < friends.length; i++) {
divInfo.innerHTML += '<li>'+friends[i].name +'</li>';
}
divInfo.innerHTML += '</ul></div>';
});
}
</script>
<a href="#" onclick="getFriends(); return false;">graph friends</a>
<div id = divInfo></div>
Теперь, на моем интегрированном веб-сайте в Facebook, я бы в конечном итоге хотел, чтобы мои пользователи выбирали своих друзей и отправляли им подарки / фейсбук - били их ... или что угодно. Поэтому я пытаюсь реализовать простой фильтр Jquery , используя этот фрагмент кода, который манипулирует DOM
<script>
(function ($) {
// custom css expression for a case-insensitive contains()
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
function listFilter(header, list) { // header is any element, list is an unordered list
// create and add the filter form to the header
var form = $("<form>").attr({"class":"filterform","action":"#"}),
input = $("<input>").attr({"class":"filterinput","type":"text"});
$(form).append(input).appendTo(header);
$(input)
.change( function () {
var filter = $(this).val();
if(filter) {
// this finds all links in a list that contain the input,
// and hide the ones not containing the input while showing the ones that do
$(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
$(list).find("a:Contains(" + filter + ")").parent().slideDown();
} else {
$(list).find("li").slideDown();
}
return false;
})
.keyup( function () {
// fire the above change event after every letter
$(this).change();
});
}
//ondomready
$(function () {
listFilter($("#header"), $("#list"));
});
}(jQuery));
</script>
Теперь этот фрагмент кода работает с обычным неупорядоченным списком, но когда список отображается с помощью JavaScript, это не так. У меня есть догадка, что он должен что-то делать с методом innerHTML. Кроме того, я попытался поместить код фильтра JQuery внутри, а также прямо перед тегом. Ни один, казалось, не работал.
Если кто-нибудь знает, как решить эту проблему, пожалуйста, помогите мне. Кроме того, есть ли лучший способ отобразить список друзей, из которых пользователи могут выбирать?