查找已从XML填充的jQuery对象中的CSS类

时间:2010-06-29 13:11:01

标签: jquery css xml

我已经填充了异步ajax函数,该函数从xml:

中获取数据
$.ajax({
    type: "GET",
    url: "/content/en_GB/banner-data.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('item').each(function(){
        var section = $(this).attr('section');
        var title = $(this).attr('title');
        var tabid = $(this).attr('tabid');
        var image = $(this).attr('image');

        var banner = $("<div class='banner-textarea'></div>");

        banner.append($("<span class='hidden panelButtonLabel'></span>").html(section));
        banner.append($("<h2></h2>").html(title));
        $(this).find('section').each(function(){
        var alink = $(this).attr('link');
        var desc = $(this).text();
        banner.append($("<a href='"+alink+"'></a>&nbsp;|&nbsp;").html(desc));
        });

        //banner = $("<div class='banner-textarea'></div>").html(banner);
        banner = $("<div id='tab"+tabid+"' class='mini-banner-img'></div>").html(banner);
        banner = $("<li class='panelsLi'></li>").html(banner);

但我还必须修改现有脚本,以便我可以将轮播功能应用于“banner”对象。

我在抓住小组课时遇到了问题:

$(".panelsCarousel").each(function(){

//init
var divObj=$(this);

var intervalHnd=null;   //timer handler

// get the widget params
var params=divObj.getJsonComment();
var duration=params.duration||6000;                                     

var ul=divObj.find("ul");
var LIs=banner.find("panelsLi"); < FAILS HERE

最后一行没有找到该类。你能帮忙吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

您缺少一个类的点(.),而不是:

var LIs=banner.find("panelsLi");

尝试:

var LIs=banner.find(".panelsLi");

请参阅:

jQuery Class Selector

答案 1 :(得分:0)

您当前的jQuery selector panelsLi实际上会定位具有标记的元素,而不是该类(即标记)。要定位课程,您需要使用.

启动选择器
var LIs=banner.find(".panelsLi");  <-- classes start with .

更新:我实际上看不到任何将panelsLi附加到文档的代码?渲染ajax更新时,您是否真的看到屏幕上显示panelsLi

代码中的banner变量目前仅存在于成功ajax回调函数的范围内 - 除非您在范围之外声明变量,否则它不会对此范围之外的其他函数可用将面板添加到文档中,然后使用jQuery稍后获取对它的新引用。