如何选择属性等于的div

时间:2015-07-14 09:39:26

标签: jquery

通过根据其属性值选择div,我无法选择div的html内容。

我的HTML就是这样:

<div id="infowrap1" class="widgetInfobox" possition="1" wid="QI" style="">.....</div>
<div id="infowrap2" class="widgetInfobox" possition="2" wid="CP" style="">.....</div>
<div id="infowrap3" class="widgetInfobox" possition="3" wid="PP" style="">.....</div>
<div id="infowrap4" class="widgetInfobox" possition="4" wid="MT" style="">.....</div>

让我说我想得到div的html()with possition = 1 ... 我尝试使用

var p1=$(".widgetInfobox [possition='1']").html();
alert(p1); 

..但我得到'未定义',如果我仅提醒$(".widgetInfobox [possition='1']"),我会[object Object]。如果我选择.text()我得到空字符串。

我该怎么做? 提前致谢

5 个答案:

答案 0 :(得分:2)

jQuery的sizzle选择器引擎遵循CSS规则。因此,要使用多个子句选择元素,不应在它们之间添加空格。试试这个:

var p1 = $(".widgetInfobox[possition='1']").html();

还应注意,possitionwid不是div元素的标准属性。使用它将意味着您的HTML无效。您应该使用data-*属性:

<div id="infowrap1" class="widgetInfobox" data-position="1" data-wid="QI" style="">.....</div>
<div id="infowrap2" class="widgetInfobox" data-position="2" data-wid="CP" style="">.....</div>
<div id="infowrap3" class="widgetInfobox" data-position="3" data-wid="PP" style="">.....</div>
<div id="infowrap4" class="widgetInfobox" data-position="4" data-wid="MT" style="">.....</div>
var p1 = $(".widgetInfobox[data-position='1']").html();

答案 1 :(得分:2)

删除类和属性之间的空格,否则它将选择具有属性.widgetInfobox的{​​{1}}子元素: -

possition='1'

Demo

答案 2 :(得分:1)

删除类和属性选择器之间的空间,因为空格将使它成为后代选择器,它将找到属性为possition =&#39; 1&#39;在.widgetInfobox

的后代内

Live Demo

var p1=$(".widgetInfobox[possition='1']").html();

答案 3 :(得分:1)

它不是后代选择器只需删除类和属性之间的空格。

var p1=$(".widgetInfobox[possition='1']").html();

我认为ID在您的代码中是唯一的,我们可以轻松地使用id

var p1 = $("#infowrap1").html();

答案 4 :(得分:1)

试试这个

DEMO

session_start();
include_once'dbconnect.php';
    if (isset($_SESSION['user']) != "") {
        header ("Location: home.php");  
    }

    if (isset($_POST['login'])) {
        $email = mysql_real_escape_string($_POST['email']);
        $pass = mysql_real_escape_string($_POST['pass']);
        $sql = mysql_query("SELECT * FROM users WHERE email='".$email."'");
        $num = mysql_fetch_assoc($sql);
        if(count($num)>0){
            if ($num['password'] == $pass)) {
                $_SESSION['user'] = $num['user_id'];
                header ("Location: home.php");
            }
                else {
                    echo "Cannot login";
                }
        }else{
          echo "Cannot login, email id not found";
        }

    }

OR

var p1=$("[possition='1']").html();
alert(p1);

注意:您可以使用标题属性名称var p1=$("div[possition='1']").html(); alert(p1); 代替data-possition

DEMO