如何使用jQuery获取HTML中特定类的第一个元素的ID值

5

I have this HTML code:

    <div id="calc_pol_list">
       <li class="calc_li">
           <span class="right_list_number">1</span>
           <p id="120" class="calc_p"/>
       </li>
       <li class="calc_li">
           <span class="right_list_number">2</span>
           <p id="100" class="calc_p"/>
       </li>
    </div>

我需要使用jQuery获取第一个p标签的ID,并将其转换为字符串。

我尝试过以下代码:

    $('#calc_pol_list p:first').attr('id');

但是它不起作用。

我该怎么做?

更新: 这是我的函数:

function refreshCost(){
    if ( jQuery.isReady ) {
        stomCost = parseInt($('div#calc_pol_list calc_p:first').attr('id'));
        var cost = stomCost + scatCost + polCost;               
        $("#pre_cost").text(cost);
    };
};

是的,如果单独考虑我的代码,它是正确的。但问题在于我不知道如何解决它。问题在于这些

标签是我在Ajax请求后添加的,而不是它们原始的DOM中的一部分。拥有这些

标签的表单位于div内部。我在这里阅读到需要将表单直接作为body的子元素,但在这种情况下这是不可能的。


1
只有在DOM准备就绪后执行,它才能正常工作working - not working - Arun P Johny
1
你的代码似乎运行良好。 - Outlooker
1
在这里运行良好:http://jsfiddle.net/BfUbV/ - 97ldave
1
id属性不应以数字开头。"ID和NAME标记必须以字母([A-Za-z])开头,可以后跟任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)" 来源 - Stphane
是的,如果单独考虑我的代码,它是正确的。我意识到问题所在,但不知道如何解决。问题在于这些<p>标签是我在Ajax请求之后添加的,而不是它们原来的DOM中的一部分。拥有这些<p>标签的表单位于div内部。我在这里读到需要将表单直接作为body的子元素,但在这种情况下这是不可能的。 - Shadow_
显示剩余2条评论
6个回答

5
$('#calc_pol_list p').first().attr('id')

像这样:)

3
这个怎么样:
$('#calc_pol_list p').eq(0).attr('id');

jsfiddle {{链接1:http://jsfiddle.net/krasimir/ppzqx/1/}}


2
解决方案是使用 .ajaxStop。
$(document).ajaxStop(function() {
    alert($('#calc_pol_list p').eq(0).attr('id'));
});

1

试试这个:

$(document).ready(function(){ 
alert($('#calc_pol_list p:first').attr('id'));
});

0
创建一个变量并在其中获取变量,例如:
var content = $('#calc_pol_list > li p:first').attr('id');

并且弹出它,您将获得ID作为字符串,例如。

alert (content );

请使用以下方式格式化代码块:(a) 使用4个空格缩进,或者 (b) 选择代码块并点击按钮栏中的 {} 按钮,或者 (c) 选择代码块并按下 Ctrl + K。格式化后的代码使得答案更易于阅读 :) - Harry

0
ID和NAME标记必须以字母([A-Za-z])开头,可以后跟任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)。

参见:HTML中id属性的有效值是什么?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接