如何用jQuery保存“a”的“title”属性?

时间:2011-10-08 23:34:30

标签: javascript jquery

如何保存行标题的值?这些是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>

这是关于这个主题的第三个问题。我感谢任何帮助。感谢。

4 个答案:

答案 0 :(得分:5)

而不是

    var main_id = a.title;

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

因为如果我没错,“a”没有定义

答案 1 :(得分:2)

我怀疑我可能会遗漏某些内容,但我怀疑您的问题是使用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将被解析为一个变量,该变量尚未赋值,也未被声明,因此它将返回undefined或{ {1}}(充其量)。在null方法的范围内,您将迭代各个节点;因此,要访问该节点的属性/属性,请使用each()

答案 2 :(得分:2)

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

$("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,这将是对点击元素的引用。

答案 3 :(得分:1)

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

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