Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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
css类*=javascript等效类_Javascript_Jquery_Css_String_Numbers - Fatal编程技术网

css类*=javascript等效类

css类*=javascript等效类,javascript,jquery,css,string,numbers,Javascript,Jquery,Css,String,Numbers,我有一个循环元素列表,其中包含使用匹配类号的元素。思考 .thing_outside_1 > .thing_inside_1 .thing_outside_2 > .thing_inside_2 .thing_outside_3 > .thing_inside_3 。。。等等对于javascript,是否有一个与css的class*=等价的类,以便我只能调用具有匹配类号的“thing”?这是我到目前为止所拥有的 $( ".thing_inside_" ).dialog();

我有一个循环元素列表,其中包含使用匹配类号的元素。思考

.thing_outside_1 > .thing_inside_1
.thing_outside_2 > .thing_inside_2
.thing_outside_3 > .thing_inside_3
。。。等等对于javascript,是否有一个与css的class*=等价的类,以便我只能调用具有匹配类号的“thing”?这是我到目前为止所拥有的

$( ".thing_inside_" ).dialog();
$( ".thing_outside_" ).click(function() { $( ".thing_inside_" ).dialog( "open" ); });

我尽了最大努力,利用您提供的有限信息提出了一个解决方案

<div id="thing_outside_1" class="thing_outside" data-index="2">
    <div id="thing_inside_1" class="thing_inside"></div>
    <div id="thing_inside_2" class="thing_inside"></div>
    <div id="thing_inside_3" class="thing_inside"></div>
</div>

<div id="thing_outside_2" class="thing_outside" data-index="2">
    <div id="thing_inside_1" class="thing_inside"></div>
    <div id="thing_inside_2" class="thing_inside"></div>
    <div id="thing_inside_3" class="thing_inside"></div>
</div>

$( "#thing_inside_1" ).dialog(); 
$( "#thing_inside_2" ).dialog(); 
$( "#thing_inside_3" ).dialog(); 

$( ".thing_outside" ).click(function() {
    var index = $(this).attr("data-index");
    $( "#thing_inside_" + index ).dialog( "open" ); 
});

$(“#里面的东西”)对话框();
$(“#里面的东西2”).dialog();
$(“#thing_inside_3”).dialog();
$(“.thing_outside”)。单击(函数(){
var索引=$(this.attr(“数据索引”);
$(“#内部事物”+索引)。对话框(“打开”);
});

为什么不直接使用
.thing\u外部
.thing\u内部

<div class="thing_outside" id="thing1">
    <div class="thing_inside"></div>
</div>

<div class="thing_outside" id="thing2">
    <div class="thing_inside"></div>
</div>

<div class="thing_outside" id="thing3">
    <div class="thing_inside"></div>
</div>

编辑:我没有想到您在这里使用jQuery
对话框<代码>对话框
从其父元素中删除元素,并将其粘贴在文档正文的末尾。在这种情况下,这种方法将不起作用。有很多方法可以解决这个问题。一是这样做:

$( ".thing_outside" ).each( function() {
    var dialog = $(this).find( ".thing_inside" ).dialog();

    var dialogId = dialog.attr('id');
    $(this).data('dialogId', Id);

}).click( function() {
    var dialogId = $(this).data('dialogId');
    $('#'+dialogId).dialog("open");
});
演示:


在这种情况下,我们使用
each
循环遍历每个外部元素,为内部元素创建对话框,并将其ID存储在外部元素的数据中。(如果不为内部元素提供ID,jQueryUI将为您创建一个ID,因此您不必担心)。然后,在
上单击
,我们只需检索ID,并使用它查找关联的对话框。

您使用这些选择器做什么?这些元素中有什么?你想要实现什么?就像@Pointy所说的,知道你想要做什么会很有帮助。似乎有更好的方法来定义类,从而帮助您完成所需的操作。其思想是,当用户单击“1外的东西”时,会打开“1内的东西”的特定对话框。2、3等等也是如此。我在一个页面上有许多对话框,并且希望无论其中有多少对话框都能正常工作。您可能对jQuery方法感兴趣。请参阅下面我的答案。你不需要那么具体。JS知道您单击的是什么
div
,因此您只需遍历单击的元素内部。你不需要为你的类单独编号,如果你这样做了,它们将是ID。这似乎不再能识别click函数了,知道我哪里出错了吗?啊,我忘了jQueryUI会从HTML中的原始位置删除对话框,所以它们不再位于其父对象的内部。见编辑。非常感谢杰夫,你太棒了!
$( ".thing_outside" ).each( function() {
    var dialog = $(this).find( ".thing_inside" ).dialog();

    var dialogId = dialog.attr('id');
    $(this).data('dialogId', Id);

}).click( function() {
    var dialogId = $(this).data('dialogId');
    $('#'+dialogId).dialog("open");
});