3

我已经尝试了许多不同的方法,但没有任何效果。现在我有:

    $(document).ready(function () {
    $(".page").click(function () {

        var html = $(document).html();

        html.replace("[", "<");

        alert("here");
    });


 });

这拒绝工作。例如,它也不允许我做任何 Jquery exmaples 的事情

  $("[").replaceWith("<");

在我看来, .replace 甚至不在 jQuery 中,尽管很多示例似乎都将它作为查询的一部分。有什么建议么?这开始让我感到沮丧。我试过传入一个特定的 div,但它仍然拒绝工作。有任何想法吗?任何帮助将不胜感激!

4

3 回答 3

5

这是你想要的吗?

$(document.documentElement).html(function(i,val){
    return val.replace(/\[/g,'<');
});

document本身不是一个DOM Element,你应该使用document.documentElement来代替。

于 2012-07-23T20:33:38.963 回答
0

在我看来,您正在从 html 创建一个变量,但没有将其发送回页面:

$(document).ready(function () {
    //EDIT:
    // $(".page").click(function () { changed to a bind type event handler to
    // prevent loss of interactivity. .on() requires jQuery 1.7+ I believe.
    $(".page").on('click', function () {   
           var htmlString = $('body').html();

            // To replace ALL occurrences you probably want to use a regular expression
            // htmlString.replace(/\[/g, "<");
            htmlString.replace("[", "<");


            //Validate the string is being manipulated
            alert(htmlString);

            // Overwrite the original html
            $('body').html(htmlString);
    });
});

请记住,我没有对此进行测试,但如果我没记错的话,jQuery 中的 .html() 方法用于获取/设置不一定是直接操作。

于 2012-07-23T20:47:05.507 回答
0

生产线html.replace("[", "<");没有做任何事情

html是一个字符串,所以你正在替换字符串而不对输出做任何事情。

var foo = html.replace(/\[/g, "<");
$(document).html(foo);
于 2012-07-23T20:48:21.617 回答