Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 获取prev元素jquery的内容_Javascript_Jquery - Fatal编程技术网

Javascript 获取prev元素jquery的内容

Javascript 获取prev元素jquery的内容,javascript,jquery,Javascript,Jquery,我在html中加入了这个结构 <table border="1" cellpadding="1" cellspacing="2"> <thead> <tr> <th>Name</th><th>Age</th><th>Address</th><th>Option</th> </tr> </thead> <t

我在html中加入了这个结构

<table border="1" cellpadding="1" cellspacing="2">
<thead>
    <tr>
        <th>Name</th><th>Age</th><th>Address</th><th>Option</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>here is the name</td>
        <td>here is the age</td>
        <td>here is the address</td>
        <td><button class="update">update</button></td>
    </tr>
    <tr>
        <td>here is the name2</td>
        <td>here is the age2</td>
        <td>here is the address2</td>
        <td><button class="update">update2</button></td>
    </tr>
</tbody>
</table>
现在我要做的是,当我点击更新按钮时,我必须能够在同一行中获取地址td的内容,并将其命名为td,并且每个内容必须存储在指定的变量中,例如($name,$age,$address)。假设我有多行,我必须能够检索同一行的address td到name td的内容。更准确地说,正如上面的结构,当我单击u“update”按钮而不是“update2”按钮时,我必须能够获取“here is name”、“here is age”、“here is address”并将每个变量放入指定的变量中,例如($name、$age、$address)

到目前为止,我尝试的是

$('.update').click(function(){
   $address = $(this).prev('td').content();

   alert ($dateposted);

});

但似乎什么也没有归还。任何帮助都将不胜感激。谢谢大家!

此处
是按钮,它没有以前的同级,您要查找的
td
是所单击按钮的
td
父级的以前同级,您还必须使用/获取内容

$address = $(this).parent().prev('td').text();//$(this).closest('td')

这里有另一种方法。在获得所有前面的div之后,然后循环它们以将值设置为正确的变量

$('.update').click(function () {
    var contents = $(this).parent().prevAll('td');
    var name;
    var age;
    var address;

    for(i = 0; i<contents.length; i++){
        var currentContent = $(contents[i]);
        switch(i){
            case 0:
                name = currentContent.text();
                break;
            case 1:
                age = currentContent.text();
                break;
            case 2:
                address = currentContent.text();
                break;
        }
    }
    console.log(address, age, name);

});
$('.update')。单击(函数(){
var contents=$(this.parent().prevAll('td');
变量名;
变量年龄;
var地址;

对于(i=0;i
content()
,或者,因为只有后者才是有效的jQuery方法。谢谢你的回答。我如何获取地址旁边的下一个td?我想获取年龄并将其存储在$age中。名称也是如此。如果你需要获取多个值,那么将类添加到你的TDs中并使用类似于
$address=$(this)的东西会更方便('tr').find('td.addess').text();
等等……否则您将面临一个
.prev().prev().prev()
噩梦如果你以后更改HTML结构,这是不可靠的。谢谢。我已经解决了。接下来我要做的就是在第一个实现的prev调用中添加.prev,然后再执行其他调用。如果有一天年龄出现在名称之前,这是一个坏主意。你说得对。我必须通过添加类对其进行过滤,以便确保我检索准确的内容。如何访问这些变量,例如名称、年龄和地址。例如,如果我要提醒变量$name内容。我将如何做到这一点?谢谢。我发现你的方法更准确。这符合我的需要。
$('.update').click(function () {
    var contents = $(this).parent().prevAll('td');
    var name;
    var age;
    var address;

    for(i = 0; i<contents.length; i++){
        var currentContent = $(contents[i]);
        switch(i){
            case 0:
                name = currentContent.text();
                break;
            case 1:
                age = currentContent.text();
                break;
            case 2:
                address = currentContent.text();
                break;
        }
    }
    console.log(address, age, name);

});