jquery 前置的问题

发布于 2024-10-18 22:17:49 字数 1333 浏览 5 评论 0原文

我不知道为什么这不起作用..

这有效:

$(this).prepend("<div data-role='header'><h1>Hi</h1></div>");

但是当我这样做时,我的整个页面变成空白(没有加载),但没有错误:

$(this).prepend("<div data-role='header'><a href='link'>Link</a><h1>Hi</h1></div>");

这也不起作用:这也不起作用

$(this).prepend("<div data-role='header'><h1>Hi</h1></div>");
$(this).find('div[data-role=header]').prepend("<a href='link'>Link</a>");

var string = "<div data-role='header'><a href='link'>Link</a><h1>Hi</h1></div>";
$(this).prepend(string);

并且这是重要的上下文:

$('div[data-role*="page"]').each(function (i) {
    if ($(this).children('div[data-role*="header"]').length != 0) {
        alert("has header");
    } else {
        if (i == 0) {
            var string = "<div data-role='header'><a href='link'>Link</a><h1>Hi</h1></div>";
            $(this).prepend(string);

        } else {
            $(this).prepend("<div data-role='header'><h1>Hi</h1></div>");
        }
        $(this).find('div[data-role=header]').page();
    }
});

我如何让它发挥作用?

i'm at a loss for why this isn't working..

this works:

$(this).prepend("<div data-role='header'><h1>Hi</h1></div>");

however when i do this my entire page goes blank (nothing loads), but there's no error:

$(this).prepend("<div data-role='header'><a href='link'>Link</a><h1>Hi</h1></div>");

this also doesn't work:

$(this).prepend("<div data-role='header'><h1>Hi</h1></div>");
$(this).find('div[data-role=header]').prepend("<a href='link'>Link</a>");

nor does this:

var string = "<div data-role='header'><a href='link'>Link</a><h1>Hi</h1></div>";
$(this).prepend(string);

and here's the context in case that matters:

$('div[data-role*="page"]').each(function (i) {
    if ($(this).children('div[data-role*="header"]').length != 0) {
        alert("has header");
    } else {
        if (i == 0) {
            var string = "<div data-role='header'><a href='link'>Link</a><h1>Hi</h1></div>";
            $(this).prepend(string);

        } else {
            $(this).prepend("<div data-role='header'><h1>Hi</h1></div>");
        }
        $(this).find('div[data-role=header]').page();
    }
});

how do i get this to work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

意中人 2024-10-25 22:17:49

假设您使用的是 1.4 或更高版本,请尝试使用引入的新元素创建语法动态创建所需的元素:

$('<a />', {
    'href': 'http://www.google.com',
    'target': '_blank',
    'text': 'This is a link',
    'class': 'myClassName',
    'css': {
        'top': '20px'
    }
           }).appendTo('<div />', { 'data-role': 'header' })
             .prependTo($(this));

Assuming you're using version 1.4 or greater, try dynamically creating the elements you need using the new element creation syntax introduced:

$('<a />', {
    'href': 'http://www.google.com',
    'target': '_blank',
    'text': 'This is a link',
    'class': 'myClassName',
    'css': {
        'top': '20px'
    }
           }).appendTo('<div />', { 'data-role': 'header' })
             .prependTo($(this));
晨与橙与城 2024-10-25 22:17:49

根据我的经验,如果在 -tag 中使用了 prepend 函数的脚本,它将不起作用,因为脚本是在 DOM 准备好之前加载的。

为了避免这种挫败感,将 javascript 放在标记之前是一个好习惯。

In my experience, if the script in which the prepend function is used in the -tag, it will not work because the script is loaded before the DOM is ready.

To avoid this kind frustration, is a good habit to place your javascript before the tag.

韵柒 2024-10-25 22:17:49

我猜您正在使用 jQuery mobile,它似乎按 jsfiddle 上的预期工作。你在什么浏览器上测试这个?

更新 jsfiddle 成为更完整的示例,以便页面转换从第一页开始进行。

I am guessing you are using jQuery mobile it appears it works as intended on jsfiddle. What browser are you testing this on?

Updated jsfiddle to be a more complete example so the page transition works from the first page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文