如何保存title""a"属性与jQuery

How to save "title" attribute of "a" with jQuery?

本文关键字:quot 属性 jQuery title 何保存 保存      更新时间:2023-09-26

如何保存行标题的值?这些是title=%s:

的值
<a class="false" title=1106 href="/useradminpage?main_id=%s&display=false"><span class="small">(hide)</span></a>
<a class="false" title=1153 href="/useradminpage?main_id=%s&display=false"><span class="small">(hide)</span></a>
<a class="false" title=1175 href="/useradminpage?main_id=%s&display=false"><span class="small">(hide)</span></a>

我试了无数的变化,但没有一个奏效。这是我现在的代码:

<script>
$(document).ready(function() {
    console.log("ready");
    $("a.false").click(function(e) {
        $(this).closest("tr.hide").hide("slow");
        var main_id = a.title;
        var display = "false";
        e.preventDefault();
    });
    $("a.false").click(function() {
        $.ajax({
            url: "/useradminpage?main_id=%s&display=false",
            data: {main_id: "main_id", display: "display"},
            success: function(data) {
            display_false()
            alert("4 - returned");
            }
        });
    });
});
</script>

这是关于这个话题的第三个问题。谢谢你的帮助。谢谢。

代替

    var main_id = a.title;

    var main_id = $(this).attr('title');

因为如果我没弄错的话,"a"没有定义

我认为你要做的是在AJAX请求中传递title属性的值。如果是这种情况,最简单的方法就是在一个事件处理程序中完成所有操作(为什么要将两个不同的处理程序绑定到同一个事件?):

$("a.false").click(function(e) {
    $(this).closest("tr.hide").hide("slow");
    var main_id = this.title;
    var display = "false";
    e.preventDefault();
    $.ajax({
        url: "/useradminpage",
        data: {main_id: main_id, display: display},
        success: function(data) {
            display_false();
            alert("4 - returned");
        }
    });
});

您当前的问题是main_iddisplay不在第二个事件侦听器的范围内,因此将是未定义的(并且它们不应该被引用,否则您只是在传递字符串)。当您将data对象传递给ajax函数时,您也不需要将查询字符串添加到URL中。

除此之外,当你给main_id赋值时,你正在使用a.title。在本例中,a是未定义的,您将需要使用this,它将是对所单击元素的引用。

我怀疑我可能错过了一些东西,但我怀疑你的问题是使用a.title而不是this.title:

$("a.false").click(function(e) {
    $(this).closest("tr.hide").hide("slow");
    var main_id = this.title; // or you could use the jQuery object approach: $(this).attr('title') instead
    var display = "false";
    e.preventDefault();
});

您的原始方法中的问题是a将被解析为一个变量,它没有被分配值,也没有被声明,因此它将返回undefinednull(充其量)。在each()方法的范围内,您将遍历单个节点;因此,要访问该节点的属性/属性,请使用this

要通过jQuery访问DOM元素的任何属性,可以使用.attr()函数。在你的特殊情况下,你可以这样做。

var main_id = $(this).attr('title');