-1

我已经渲染了下表

   <table id="layout" width="100%" border="0" cellspacing="6" cellpadding="0">
        <tr>
           <td>
             <div style="position: static;" class="type_normal type_common" title="33">33</div>
           </td>
           <td>
             <div style="position: static;" class="type_selected ticket_type_common" title="34">33</div>
           </td>
        </tr>
   </table>

我的要求是单击特定单元格,我想要 div 标签的值和类。

        $("#layout").delegate('tr td','click',function(){
            var seat_selected=$(this).text();
            seat_selected=$(this).html();
            }
        });

使用 $(this).text 给我数字 33。使用 $(this).html() 给出 td 内的整个部分(我得到整个 div)。但我只想要 div 标签的类。将 div 标签的类名获取到变量的过程是什么。

我的要求是检查 div 标签中的特定类并将 div 标签更改为另一个类。例如,如果我单击的单元格具有带有类 (type_normal type_common) 的 div 标签,我想将 div 标签的类更改为 (type_selected type_common)

请指教。

4

4 回答 4

1

您可以通过以下方法获取类名,

var classOfDiv = $(this).find('div').attr('class');

你的代码是

$("#layout").delegate('tr td', 'click', function() {
        var seat_selected = $(this).text();
        seat_selected = $(this).html();
        var classOfDiv = $(this).find('div').attr('class'); 
        if($(this).find('div').attr('class') == "type_normal type_common")
            $(this).find('div').attr('class', 'type_selected type_common')
});
于 2012-09-18T15:47:53.133 回答
0
$("#layout").on('click', 'tr td', function() {
    var seat_selected = $(this).children(":first").attr('class')
    alert(seat_selected)
});

在这里测试它:http: //jsfiddle.net/RASG/mqLfd/

于 2012-09-18T16:05:24.647 回答
0
$(this).find('div').attr('class')
于 2012-09-18T15:48:34.873 回答
0

click事件处理程序的回调函数中,this指的是<td>元素。然后,您可以使用.find()jQuery 函数来选择该元素内与给定选择器匹配的元素。在你的情况下,这看起来像这样:

var $tdDiv = $(this).find('div');

这为您提供了一个 jQuery 对象,其中包含<div>您的元素<td>,然后您可以使用该className属性来获取其当前类:

var divClass = $tdDiv.prop('className');

然后你可以使用该.text()函数来获取它的“值”:

var divValue = $tdDiv.text();

编辑:基于添加到问题的其他信息,特别是这部分:

我的要求是检查 div 标签中的特定类并将 div 标签更改为另一个类。例如,如果我单击的单元格具有带有类 (type_normal type_common) 的 div 标签,我想将 div 标签的类更改为 (type_selected type_common)

您可以使用该.hasClass()函数来检查jQuery对象中的元素是否具有特定的类,addClass()添加类的removeClass()函数和删除类的函数(或用于toggleClass()添加或删除,取决于该类是否已经在元素上)。

var $tdDiv = $(this).find('div.type_common.type_normal')
$tdDiv.removeClass('type_normal').addClass('type_selected');
于 2012-09-18T15:48:42.233 回答