Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么代码中val()返回的值为空?_Javascript_Jquery_Jsp_Jquery Ui - Fatal编程技术网

Javascript 为什么代码中val()返回的值为空?

Javascript 为什么代码中val()返回的值为空?,javascript,jquery,jsp,jquery-ui,Javascript,Jquery,Jsp,Jquery Ui,我尝试将打开对话框的UI从显示要从选择框内部打开的文件列表更改为包含两列的表 原始代码: JSP 现在,我将选择框更改为如下表: JSP 前者会提醒我单击的文件名,但后者会给出一个空的提醒框。有人能解释为什么会发生这种情况吗?用于获取或设置一个或多个元素的值 在您的例子中,发生这种情况是因为()有一个值属性,而()没有。您应该使用.text()而不是.val(),例如: var choice = $('table#load-opt tr td'); choice.click(function()

我尝试将打开对话框的UI从显示要从选择框内部打开的文件列表更改为包含两列的表

原始代码:

JSP

现在,我将选择框更改为如下表:

JSP

前者会提醒我单击的文件名,但后者会给出一个空的提醒框。有人能解释为什么会发生这种情况吗?

用于获取或设置一个或多个元素的

在您的例子中,发生这种情况是因为(
)有一个
属性,而(
)没有。您应该使用
.text()
而不是
.val()
,例如:

var choice = $('table#load-opt tr td');
choice.click(function(){
    alert($(this.text()); 
});

只有
input
textarea
具有value属性,请尝试使用
$(this).text()
$(this).html()
。您需要查找
innerText
text()
而不是
val()
,因为它不是表单元素@fuyushimoya:我知道text()是有效的,但我想知道为什么val()会失败。它正在处理选择选项。
for (var index = 0; index < length; index++) {
        var page = data[index];   //data: data to be listed inside select box
        var id = page.id || page;
        var title = page.title || id;

        var $option = $("<option></option>");
        $option.html(title);
        $option.attr("value", id);
}
choice = $('select#options option');
choice.click(function(){
    alert($(this).val);
});
<table id="load-opt"></table>
for(var ind=0; ind<data.length; ind++) {
    //name is the name and desc is the description for each option
    var $option = $("<tr></tr>");
    $option.html("<td>"+name+"</td><td>"+desc+"</td>");
    $option.attr("value", id);
}
var choice = $('table#load-opt tr td');
choice.click(function(){
    alert($(this.val()); 
});
var choice = $('table#load-opt tr td');
choice.click(function(){
    alert($(this.text()); 
});