jQuery瓦尔是否未定义?

ua4mk5z4  于 11个月前  发布在  jQuery
关注(0)|答案(8)|浏览(101)

我有这个代码:

<input type="hidden" id="editorTitle" name="title" value="home">
<textarea name="text" id="editorText"></textarea>

字符集
但是当我写$('#editorTitle').val()$('#editorText').html()时,$('#editorTitle').val()是'undefined',$('#editorText').html()是空的?
怎么了?
编辑:
以下是我的完整代码:

function openEditor() {
    $("#editor").show().animate({ width: 965, height: 380 }, 1500);
    $("#editor textarea").show();
}

function closeEditor() {
    $("#editor").animate({ width: 985, height: 1 }, 1500, function () {
        $("#editor").hide();
        $("#editor textarea").hide();
    });
}

function setedit() {
    $.ajax({
        type: "POST",
        url: "engine.php",
        data: "title=" + $('#editorTitle').attr('value') + "&text=" + $('#editorText').html(),
        beforeSend: function () {
            $('#mainField').html('<img src="data/images/loader.gif" alt="Loading...">');
        },
        success: function (msg) {
            alert(msg);
            closeEditor();
            search();
        }
    });
}
function search() {
    $('#title').val($('#search').val());

    $.get('engine.php?search=' + $('#search').val(), function (data) {
        $('#mainField').html(data);
    });

    $.get('engine.php?raw=true&search=' + $('#search').val(), function (data2) {
        $('#editorText').html(data2);
    });

    $.get('engine.php?title=true&search=' + $('#search').val(), function (data2) {
        $('#h1').html(data2); // Row 152
        $('#editorTitle').html(data2);
    });
}

$(document).ready(function () {
    $("#ready").html('Document ready at ' + event.timeStamp);
});


“怎么了?

ctehm74n

ctehm74n1#

*您可能在 * HTML:example之前包含了JavaScript

您应该在窗口加载时执行JavaScript(或者在DOM完全加载时更好),或者您应该在HTML:example之后包含JavaScript *。

z0qdvdin

z0qdvdin2#

你应该在文档准备好后调用事件 *,像这样:

$(document).ready(function () {
  // Your code
});

字符集
这是因为您试图在浏览器呈现元素之前对其进行操作。
因此,在您发布的情况下,它应该看起来像这样

$(document).ready(function () {
  var editorTitle = $('#editorTitle').val();
  var editorText = $('#editorText').html();
});


希望对你有帮助。

  • 提示:总是保存你的jQuery对象在一个变量中以备后用,只有在文档加载后真正需要运行的代码才应该放在ready()函数中。*
d7v8vwbk

d7v8vwbk3#

这是愚蠢的,但为将来的参考。我把我所有的代码:

$(document).ready(function () {
    //your jQuery function
});

字符集
但它仍然不工作,它返回undefined值。

<input id="username" placeholder="Username"></input>


我意识到我在jQuery中引用它是错误的:

var user_name = $('#user_name').val();


使其:

var user_name = $('#username').val();


解决了我的问题
所以最好检查一下你以前的代码。

xtupzzrd

xtupzzrd4#

会不会是你忘了在文档准备功能中加载它?

$(document).ready(function () {

    //your jQuery function
});

字符集

r8uurelv

r8uurelv5#

我昨天在一个项目中遇到了这个问题,我是我的特例,问题不在于输入的名称,而是ID的命名方式。

<input id="user_info[1][last_name]" ..... />
var last_name = $("#user_info[1][last_name]").val() // returned undefined

字符集
删除括号解决了这个问题:

<input id="user_info1_last_name" ..... />
var last_name = $("#user_info1_last_name").val() // returned "MyLastNameValue"


无论如何,可能对某些人来说是不需要动脑筋的,但如果这对其他人有帮助的话.给你!
:-)-德鲁

nwsw7zdq

nwsw7zdq6#

你可能忘了用$() Package 你的对象

var tableChild = children[i];
  tableChild.val("my Value");// this is wrong

字符集
正确的是

$(tableChild).val("my Value");// this is correct

tkqqtvp1

tkqqtvp17#

try:$('#editorTitle').attr('value')

nlejzf6q

nlejzf6q8#

在我的例子中,我有两个同名的函数。

相关问题