jquery 无法获取单元格内span的值,请问是怎么回事

ahking 2016-02-17 10:46:42

$(function () {
$('.showDiv').click(function (event) {
//取消事件冒泡
event.stopPropagation();

alert($(event.target).eq(1).text());

});



前端
<td class="showDiv">
<span>11</span>
<span>22</span>
</td>
...全文
262 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwsss 2016-02-17
  • 打赏
  • 举报
回复
$(function(){ $('.showDiv').click(function (event) { //取消事件冒泡 event.stopPropagation(); alert($(event.target).text()); })});
ahking 2016-02-17
  • 打赏
  • 举报
回复
对了,第二个span是隐藏的 <td class="showDiv"> <span>11</span> <span style="display: none;">5</span> </td> 怕兼容性出现问题,没敢给td或span添加其他属性 还有,在客户端选中radio按钮后, $("#divTop input:radio[value='10']").attr('checked', 'checked'); 好像无效了,总是最近点击的按钮总是处于选中状态
ahking 2016-02-17
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
alert($(event.target).eq(0).text()); 和 alert($(event.target).text()); 是一样的
如果span中没有内容,tagname显示TD
ahking 2016-02-17
  • 打赏
  • 举报
回复

 $('.showDiv').click(function (event) {
        //取消事件冒泡  
        event.stopPropagation();
        //设置弹出层的位置  
        var offset = $(event.target).offset();
        var tdObj = $(event.target);

        $("#divTop").css("position", "absolute");
        $('#divTop').css({ top: offset.top + $(event.target).height() + "px", left: offset.left });

        var ra = (tdObj).find('span:eq(1)').text();
        //alert();
        if ($('#divTop').is(":hidden")) {
            $("#divTop input:radio").attr('checked', false);
            $("#divTop input:radio[value='10']").attr('checked', 'checked');
        }       
        //alert($('span:eq(1)', this).text());

        $('#divTop a').click(function () {           
            //保存百分数
            tdObj.find('span:eq(1)').text($('#divTop input[name="ratio"]:checked ').val());
            //计算值
            var cq = tdObj.prev().text();
            if (cq.length > 0)
                tdObj.find('span:eq(1)').text(cq * $('#divTop input[name="ratio"]:checked ').val() / 100);

            $('#divTop').slideUp('fast');

        });

        //按钮的toggle,如果div是可见的,点击按钮切换为隐藏的;如果是隐藏的,切换为可见的。  
        $('#divTop').toggle('fast');


    });
我是在点击单元格的时候弹出一个层,层里面有一组radio,名字为ratio 然后有个确定按钮,用于保存选定的值 总感觉在单元格的点击方法中绑定层里面的确定按钮事件很别扭,但不知道如何将层的按钮和被点击的单元格关联 而且radio的选中状态总也设置不对,请帮忙看看 感觉在
xuzuning 2016-02-17
  • 打赏
  • 举报
回复
alert($(event.target).eq(0).text());
实际点击的是 span 而非 td 你可以通过
alert($(event.target)[0].tagName);
观察到这一点 event.stopPropagation(); 有没有都无所谓
xuzuning 2016-02-17
  • 打赏
  • 举报
回复
alert($(event.target).eq(0).text()); 和 alert($(event.target).text()); 是一样的
  • 打赏
  • 举报
回复
引用 8 楼 ahking 的回复:
[quote=引用 5 楼 showbo 的回复:] 其他不需要设置span值的单元格去掉.showDiv样式
每个不同的单元格都需要设置不同的值[/quote] 那你不通的值和span怎么对应?你都没有对应关系怎么知道哪个span设置什么值?要么就增加个realvalue存储实际的值,点击的时候获取这个自定义属性realvalue
<td class="showDiv">
<span>11</span>
<span realvalue="3333333">22</span>
</td>

    $('.showDiv').click(function (event) { 
        event.stopPropagation();
        var sp = $('span:eq(1)', this)
        sp.text(sp.attr('realvalue'));

    });
ahking 2016-02-17
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
其他不需要设置span值的单元格去掉.showDiv样式
每个不同的单元格都需要设置不同的值
  • 打赏
  • 举报
回复

$(function(){
     $('.showDiv').click(function (event) {
         //取消事件冒泡  
         event.stopPropagation();
 		$(this).find('span:eq(1)').text('666');
   
	 });
});
上面666的单引号错了……改成半角的
  • 打赏
  • 举报
回复
引用 4 楼 ahking 的回复:
这么写,怎么好像所有单元格里的第二个span值都666了,我想让点击单元格里的td的第二个span是666
试试

$(function(){
     $('.showDiv').click(function (event) {
         //取消事件冒泡  
         event.stopPropagation();
        
 $(this).find('span:eq(1)').text(‘666’);
  
 })});
  • 打赏
  • 举报
回复
其他不需要设置span值的单元格去掉.showDiv样式
ahking 2016-02-17
  • 打赏
  • 举报
回复
$(function(){ $('.showDiv').click(function (event) { //取消事件冒泡 event.stopPropagation(); $('span:eq(1)',this).text(‘666’); })}); 这么写,怎么好像所有单元格里的第二个span值都666了,我想让点击单元格里的td的第二个span是666
slwsss 2016-02-17
  • 打赏
  • 举报
回复
$(function(){ $('.showDiv').click(function (event) { //取消事件冒泡 event.stopPropagation(); alert($('span:eq(1)',this).text()); })});
ahking 2016-02-17
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
$(function(){ $('.showDiv').click(function (event) { //取消事件冒泡 event.stopPropagation(); alert($(event.target).text()); })});
可是里面有两个span,我想获取第二个span的内容

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧