【问题标题】:$(this).val() not working to get text from span using jquery$(this).val() 无法使用 jquery 从 span 获取文本
【发布时间】:2010-08-25 15:55:01
【问题描述】:

给定这个 html,当我点击它时,我想从中获取“August”:

<span class="ui-datepicker-month">August</span>

我试过了

$(".ui-datepicker-month").live("click", function () {
    var monthname =  $(this).val();
    alert(monthname);
});

但似乎没有工作

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    .text()代替.val(),像这样:

    $(".ui-datepicker-month").live("click", function () {
        var monthname =  $(this).text();
        alert(monthname);
    });
    

    或者在 jQuery 1.7+ 中使用 on(),因为 live 已被弃用:

    $(document).on('click', '.ui-datepicker-month', function () {
        var monthname =  $(this).text();
        alert(monthname);
    });
    

    .val() 用于输入类型元素(包括文本区域和下拉菜单),因为您正在处理具有文本内容的元素,请在此处使用 .text()

    【讨论】:

    • 注意:.live() 在 1.7 中已弃用并在 1.9+ 中删除
    • .html() 和 .text() 都适用于我的 span 元素。
    【解决方案2】:

    我想你想要.text():

    var monthname = $(this).text();
    

    【讨论】:

      【解决方案3】:

      要检索自动生成的跨度值的文本,只需执行以下操作:

      var al = $("#id-span-name").text();    
      alert(al);
      

      【讨论】:

        【解决方案4】:

        -以上都没有一直对我有用。所以这是我制定的解决方案,因为它使用基本功能,所以它在所有浏览器中都能一致地工作。希望这可以帮助其他人。使用 jQuery 8.2

        1) 获取“span”的 jquery 对象。 2) 从上面获取 DOM 对象。使用 jquery .get(0) 3) 使用 DOM 对象的 innerText 获取文本。

        这是一个简单的例子

        var curSpan = $(this).parent().children(' span').get(0);
        var spansText = curSpan.innerText;
        

        HTML

        <div >
        <input type='checkbox' /><span >testinput</span> 
        </div>
        

        【讨论】:

          【解决方案5】:

          您可以使用.html() 获取span 和/或div 元素的内容。

          示例:

              var monthname =  $(this).html();
              alert(monthname);
          

          【讨论】:

            【解决方案6】:

            我们开始吧:

            $(".ui-datepicker-month").click(function(){  
            var  textSpan = $(this).text();
            alert(textSpan);   
            });
            

            希望对你有帮助;)

            【讨论】:

              【解决方案7】:

              .val() 用于输入元素,请改用.html()

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2019-09-04
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多