0

单击编辑链接后,我尝试使用 JQUERY 从 HTML 下方获取td值,并将其分成 3 个单独的变量,如下所示

company=Microsoft Technologies
Period = 2011/3 - Current
designation = Software Engineer



<table summary="My Company" id="mylistbl">  
    <thead> 
        <tr>    
            <th scope="col">Company</th> 
            <th scope="col">Action</th> 
        </tr>  
    </thead>  
    <tbody>
        <tr object_type="999920113" object_id="872733">
            <td width="290">Microsoft Technologies<br><span style="font-size:11px; color:#555;">Period : 2011/3 - Current <br>Designation : Software Engineer</span>
            </td>
            <td><a href="#" title="Delete">Delete</a>/<a href="#" title="Edit">Edit</a>
            </td>  
        </tr>
    </tbody>
</table>



 $('body').on('click','a[title="Edit"]',
        function(){
            parObj=$(this).parent().parent(); 
            alert(parObj.children()[0].html);
            return false;
        });

我认为在parObj.children()[0].html的某个地方我做错了得到所需的文本

这是 JSFiddle

http://jsfiddle.net/FjXLp/

4

4 回答 4

3

你可以这样做:

$('body').on('click', 'a[title="Edit"]', function () {
    parObj = $(this).closest('tr');
    alert(parObj.children('td:eq(0)').html());

    // Get the first part like
    var main = parObj.children('td:eq(0)').html().split('<br>');
    var company = $.trim(main[0]);
    console.log(company);  // Microsoft Technologies

    // Second part like
    var Period  = $.trim(main[1].replace('<span style="font-size:11px; color:#555;">',''));
    console.log(Period);  // Period : 2011/3 - Current

    // Third part like
    var designation  = $.trim(main[2].replace('</span>',''));
    console.log(designation);   // Designation : Software Engineer
});
于 2013-05-29T11:50:17.853 回答
2

您必须使用返回 jquery 对象的eq() :

http://jsfiddle.net/FjXLp/1/

alert(parObj.children().eq(0).html());
于 2013-05-29T11:48:58.850 回答
2

尝试这个:

parObj.children().eq(0).html()

当您使用parObj.children()[0]它时,您可以引用作为第一个子元素(或者undefined如果没有子元素)的实际 DOM 元素,并且 DOM 元素没有html属性。它们确实有一个innerHTML属性,但通常的 jQuery 方法是使用.eq(0)jQuery 对象来获取第一个子对象,然后使用 jQuery.html()方法。

于 2013-05-29T11:49:03.793 回答
1

如果可能的话,我建议您将每个数据放在一个 span 标签内。然后你可以简单地处理它,如下所示:

<td width="290">
    <span>Microsoft Technologies</span><br/>
    <span style="font-size:11px; color:#555;">Period : 2011/3 - Current</span><br/>
    <span>Designation : Software Engineer</span>
</td>
$(document).ready(function () {
    $('body').on('click', 'a[title="Edit"]', function() {
        var spans = $(this).parents('tr').children('td:first').children('span');
        var company = spans[0].innerHTML;
        var period = spans[1].innerHTML.split(':')[1];
        var designation = spans[2].innerHTML.split(':')[1];
        alert(company + ';' + period + ';' + designation);
    });
});

http://jsfiddle.net/FjXLp/2/

于 2013-05-29T12:38:18.707 回答