Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery:访问DOM';s属性_Javascript_Jquery_Html - Fatal编程技术网

Javascript JQuery:访问DOM';s属性

Javascript JQuery:访问DOM';s属性,javascript,jquery,html,Javascript,Jquery,Html,我用一个PHP脚本在一个div上加载一个描述文本,我还有另一个脚本(这次是JQuery)来扩展这个div并显示它的信息 当我想访问保存文本的数据文本属性(该属性包含从以前的PHP加载的文本)时,它什么也不显示。我有这个密码: $(document).ready(function () { // Amplicación de fichas de imágenes var selected; $(".img_cont").click(function () {

我用一个PHP脚本在一个div上加载一个描述文本,我还有另一个脚本(这次是JQuery)来扩展这个div并显示它的信息

当我想访问保存文本的数据文本属性(该属性包含从以前的PHP加载的文本)时,它什么也不显示。我有这个密码:

$(document).ready(function () {


    // Amplicación de fichas de imágenes
    var selected;

    $(".img_cont").click(function () {
        if (!$(this).hasClass("img_cont_amp")) {
            if ($(selected).hasClass("img_cont_amp")) {
                $(selected).removeClass("img_cont_amp");
                $(selected).addClass("img_cont");

            }
            $(this).removeClass("img_cont");
            $(this).addClass("img_cont_amp");
            selected = $(this);

        } else {
            $(".ficha_texto").remove();
            $(this).removeClass("img_cont_amp");
            $(this).addClass("img_cont");
        } * *
        var text = $(this).attr("data-text"); * *
        $(this).append("<div class='ficha_texto'>" + text + "</div>");

    });
});
$(文档).ready(函数(){
//基因扩增
选择var;
$(“.img_cont”)。单击(函数(){
if(!$(this).hasClass(“img\u cont\u amp”)){
if($(选定).hasClass(“img\u cont\u amp”)){
$(选定).removeClass(“img_cont_amp”);
$(选定).addClass(“img_cont”);
}
$(此).removeClass(“img_cont”);
$(this.addClass(“img_cont_amp”);
所选=$(此项);
}否则{
$(“.ficha_texto”).remove();
$(此).removeClass(“img_cont_amp”);
$(此).addClass(“img_cont”);
} * *
var text=$(this.attr(“数据文本”);**
$(this.append(“+text+”);
});
});
大胆的部分是失败的。如果我尝试用alert()读取数据文本属性,它只会显示“undefined”

这是我的PHP代码生成的DOM元素:

<div id="img_2" class="img_cont">

                     <img class="image" data-text="Sample text" title="Sample text" src="images/uploaded/ft_7UIC.jpg">

                 </div>

我做错了什么?

也可能是

var text = $(this).data("text");
简单地说

  var t= $(this).attr("data-text");

代码示例中没有粗体格式,但是如果您试图访问

<img class="image" ...>
这是因为您试图在类“img_cont”上进行选择,而您的img元素有一个类“image”

要获取“数据文本”值,您需要执行以下操作:

$(".image").attr("data-text")
或者,如果您使用的是jQuery>=1.4.3:

$(".image").data("text")

算了吧!我已经找到了答案

我将属性值粘贴到中,而不是JQuery代码中所指的位置,所以$(this)选择器在瞄准“数据文本”时不会得到任何东西

现在属性及其值已粘贴到容器中,因此现在可以正确访问属性


不过,谢谢你的回答

为了让它工作,我必须将您的类添加到代码中

<img class="image img_cont" data-text="sample description text" title="sample title" src="images/uploaded/sample_image1.jpg">

然后,您对attr的调用是错误的(额外的括号),而且我在后面更改了append to,以便您可以看到文本(如果您在img标记上追加,您将看不到任何内容)。这应该行得通

$(document).ready(function(){


// Amplicación de fichas de imágenes
var selected;

$(".img_cont").click(function(){
    if(!$(this).hasClass("img_cont_amp")){
          if($(selected).hasClass("img_cont_amp")){
              $(selected).removeClass("img_cont_amp");
              $(selected).addClass("img_cont");

          }
        $(this).removeClass("img_cont");
        $(this).addClass("img_cont_amp");
        selected = $(this);

    } else {
        $(".ficha_texto").remove();
        $(this).removeClass("img_cont_amp");
        $(this).addClass("img_cont");
    }
    var text = $(this).attr()("data-text");
    $(this).append("<div class='ficha_texto'>"+text+"</div>");

 });
});
$(文档).ready(函数(){
//基因扩增
选择var;
$(“.img_cont”)。单击(函数(){
if(!$(this).hasClass(“img\u cont\u amp”)){
if($(选定).hasClass(“img\u cont\u amp”)){
$(选定).removeClass(“img_cont_amp”);
$(选定).addClass(“img_cont”);
}
$(此).removeClass(“img_cont”);
$(this.addClass(“img_cont_amp”);
所选=$(此项);
}否则{
$(“.ficha_texto”).remove();
$(此).removeClass(“img_cont_amp”);
$(此).addClass(“img_cont”);
}
var text=$(this.attr()(“数据文本”);
$(this.append(“+text+”);
});
});

他还可以使用属性选择器:
$(“[data text]”)。data(“text”)
来确保他点击了正确的元素。
$(document).ready(function(){


// Amplicación de fichas de imágenes
var selected;

$(".img_cont").click(function(){
    if(!$(this).hasClass("img_cont_amp")){
          if($(selected).hasClass("img_cont_amp")){
              $(selected).removeClass("img_cont_amp");
              $(selected).addClass("img_cont");

          }
        $(this).removeClass("img_cont");
        $(this).addClass("img_cont_amp");
        selected = $(this);

    } else {
        $(".ficha_texto").remove();
        $(this).removeClass("img_cont_amp");
        $(this).addClass("img_cont");
    }
    var text = $(this).attr()("data-text");
    $(this).append("<div class='ficha_texto'>"+text+"</div>");

 });
});