小编Was*_*ace的帖子

Javascript正则表达式 - 拆分字符串

苦苦挣扎的正则表达式要求.我需要将字符串拆分成数组,无论它在哪里找到正斜杠.但是如果正斜杠之前是逃避的话.

例如,如果我有这个字符串:

hello/world
Run Code Online (Sandbox Code Playgroud)

我希望将它分成如下数组:

arrayName[0] = hello
arrayName[1] = world
Run Code Online (Sandbox Code Playgroud)

如果我有这个字符串:

hello/wo\/rld
Run Code Online (Sandbox Code Playgroud)

我希望将它分成如下数组:

arrayName[0] = hello
arrayName[1] = wo/rld
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript regex string split

15
推荐指数
2
解决办法
3万
查看次数

jQuery - 在可排序列表中操作被删除的元素

我有一个可拖动列表(.field),您可以将项目拖放到可排序列表(.sortlist)中.我是这样做的,因为我不希望主列表(.field)以任何方式改变.它工作正常,除了我无法弄清楚如何操作可排序列表中的删除字段.

我可以通过在droppable()中的'drop:'函数中使用以下函数从可拖动区域到可放置区域执行此操作:

$(this).append('html code here to change content of dragged field');
Run Code Online (Sandbox Code Playgroud)

但是这在sortable()中不起作用.我的代码看起来像这样:

$(".sortlist").sortable({
  receive: function(event, ui) {
    var dropElemTxt = $(ui.item).text();
    var dropElemId = $(ui.item).attr('id');
    $(ui.item).replaceWith('<li class="box" id="'+dropElemId+'">Updated field! '+dropElemTxt+'</li>');
  }
});
Run Code Online (Sandbox Code Playgroud)

$(ui.item).replaceWith更改正在拖动的主字段,因此这不起作用.我尝试了$(this).replaceWith,但更新了可排序区域(.sortlist).

知道我需要什么代码来引用被拖动的项目吗?

非常感谢,阿里.

jquery replace list jquery-ui-sortable

7
推荐指数
2
解决办法
1万
查看次数

jquery可排序/可拖动双事件触发

我有一些拖放代码,它可以正常工作.只是有一点询问.我发现,如果我调试目的降函数中添加一个通知(如警报(draggedItem.text());),它触发警报两次当我把东西放到可拖动区域.我在另一篇文章中读到,使用droppable和sortable一起导致这个奇怪的双重事件发生.但我需要使用droppable事件来获取拖动的项目对象(ui.draggable) - 这样我就可以在删除它时操作它.如果有任何其他方式获得可拖动对象,请告诉我:)如果你有解释为什么会发生这种情况,那将是有趣的...

$(".field > li").draggable({
    helper:'clone',
    opacity: 0.4,
    connectToSortable:'.dragrow'
});

$(".dragrow").droppable({
    drop: function(e, ui) {
        draggedItem = ui.draggable;
        //alert(draggedItem.text());
    }
}).sortable({ //code here to do stuff with 'draggedItem'
Run Code Online (Sandbox Code Playgroud)

我还有另一个与此相关的查询,但由于我的代码很大,我无法在这里发布完整的内容.所以我明白,如果你无法提供帮助 - 只要有些事情让人想起来真的很酷.基本上我有一个'块'列表,我可以拖动到多行.可以使用toggle事件隐藏各个行.如果我有3行,我可以将块拖动到其中任何一行.如果我然后隐藏第一个,我现在无法拖入另外两行.我仍然可以对它们进行排序.一旦我开始对它们进行排序,我就可以再次拖入它们.奇怪的...

double jquery droppable draggable jquery-ui-sortable

7
推荐指数
1
解决办法
2298
查看次数

Javascript正则表达式 - 如何在大括号之间获取文本

我需要在大括号之间获取文本(如果有的话).我确实找到了这个其他帖子,但从技术上讲,它没有正确回答: 正则表达式提取方形或大括号之间的文本

它实际上没有说明如何实际提取文本.所以我到目前为止:

var cleanStr = "Some random {stuff} here";
var checkSep = "\{.*?\}"; 
if (cleanStr.search(checkSep)==-1) { //if match failed
  alert("nothing found between brackets");
} else {
  alert("something found between brackets");
}
Run Code Online (Sandbox Code Playgroud)

然后我如何从字符串中提取"东西"?而且如果我进一步考虑,我如何从这个字符串中提取'stuff'和'sentence':

var cleanStr2 = "Some random {stuff} in this {sentence}";
Run Code Online (Sandbox Code Playgroud)

干杯!

javascript regex search extract

6
推荐指数
1
解决办法
1万
查看次数

正则表达式替换单个反斜杠,不包括那些后跟某些字符的反斜杠

我有一个正则表达式,如果没有后跟其中一个字符,则从字符串中删除任何反斜杠:\ /或}.

它应该变成这个字符串:

foo\bar\\batz\/hi
Run Code Online (Sandbox Code Playgroud)

进入:

foobar\\batz\/hi
Run Code Online (Sandbox Code Playgroud)

但问题在于它正在处理每个反斜杠.因此它遵循规则,因为它删除了第一个反斜杠,并忽略第二个反斜杠,因为它后跟另一个反斜杠.但当它到达第3个时,它会删除它,因为它不会被另一个跟随.

我当前的代码如下所示: str.replace(/\\(?!\\|\/|\})/g,"")

但结果字符串如下所示: foobar\batz\/hi

如何让它跳过第3个反斜杠?或者这是一种做某种明确的否定搜索和替换类型的事情?例如.替换'\',但不要替换'\\','\ /'或'\}'?

请帮忙!:)

编辑

对不起,我应该解释一下 - 我使用的是javascript,所以我不认为我可以做负面的lookbehinds ...

javascript regex replace backslash

6
推荐指数
1
解决办法
7519
查看次数

jQuery - 在load()之后向元素添加功能

我有一些代码从另一个文件中加载一些html,它可以正常工作.但我正在努力从这个新加载的数据中访问元素.

我有这个代码:

var widgetSettings = $("<div>").addClass("widgetsettings").load('dashboard/chart-settings-form.php #editChartForm');
widgetSettings.appendTo(widget.element);
//so far so good...
widget.element.find('.date').each(function(i){
  $(this).datetimepicker(); //this doesn't work
  console.log('testing... '+$(this).attr('id')); //this doesn't even work...
});
Run Code Online (Sandbox Code Playgroud)

我希望它能从上面的url(它们在一个表中)中加载'#editChartForm'表单中找到这些文本框:

<input type="text" name="datefrom" id="datefrom" class="date" /> To: <input type="text" name="dateto" id="dateto" class="date" />
Run Code Online (Sandbox Code Playgroud)

html肯定被加载了.真的很困惑为什么我无法访问load()事件中的任何元素.

我还想在同一个表单上的单击功能应用取消按钮,我发现使其工作的唯一方法是在加载前将其置于"实时"功能中:

$('.cancel').live('click', function() {
  //actions here...
});
Run Code Online (Sandbox Code Playgroud)

有什么想法发生了什么?

javascript jquery load function append

5
推荐指数
1
解决办法
6386
查看次数

jQuery tablesorter插件 - 执行AFTER表排序后的操作

我有一个表使用tablesorter插件成功排序.但是,我想突出显示特定行中特定文本字段中的文本.它有一个唯一的ID,但是当我将代码放在排序代码之后它不起作用.这是我的代码:

jQuery(document).ready(function() { 
  jQuery("#filetable").tablesorter({
    sortList: [[3,1]],
    widgets: ['zebra'],
    testExtraction: "complex"
  });
  //my new code which doesn't work as expected
  if(jQuery("#new_foldername").length > 0){ 
    jQuery("#new_foldername").focus(function() { jQuery(this).select(); } ); 
  }
}); 
Run Code Online (Sandbox Code Playgroud)

如果我在检查之后粘贴警报以查看#new_foldername是否存在,我会看到警报,并且我看到背景中突出显示的文本(因此我的代码突出显示文本有效).当我单击以关闭警报时,表格将完成排序...并且文本不再突出显示.

有什么想法可能会发生什么?

jquery tablesorter highlight

3
推荐指数
1
解决办法
3694
查看次数

AngularJS在ng-click上更改类名的方法

我知道在AngularJS应用程序中不使用jQuery是一种很好的做法,但是努力解决AngularJS这样做的方法:

$scope.clickEvent = function(event) {
    if($(event.target).hasClass('icon-closed')) {
        $(event.target).removeClass('icon-closed')
        $(event.target).addClass('icon-opened')
    } else {
        $(event.target).removeClass('icon-opened')
        $(event.target).addClass('icon-closed')
    }
}
Run Code Online (Sandbox Code Playgroud)

我的HTML:

<div class="component-title icon-closed" 
     ng-model="collapsed" 
     ng-click="collapsed=!collapsed;clickEvent($event)">{{component.name}}</div>
Run Code Online (Sandbox Code Playgroud)

collapsed代码显示/隐藏面板,并在div是内ng-repeat循环,所以没有什么与做clickEvent功能.

我希望我能从事件对象中获取类名并在不使用jQuery的情况下更改它们.有任何想法吗?

谢谢 :)

jquery angularjs angularjs-ng-click

3
推荐指数
1
解决办法
4951
查看次数

jQuery将元素拖动到可初始状态为隐藏的可排序列表中

我似乎无法将元素拖动到可初始状态为隐藏的可排序列表(即display:none).

每行的html如下所示:

<div class="dragbox" id="item1" >
  <h2>Expression 1<span id="exp1"></span></h2>
  <div class="dragbox-content" >
    <ul class="dragrow1"></ul>
    <ul class="dragrow2"></ul>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

但是为了使一个字段能够被放入'dragrow*',div'dragbox-content'必须具有'display:block'的样式.这可以用主css样式编写,也可以硬编码到div本身(例如).

麻烦的是,在页面加载时,你有点想要关闭所有行(或者至少除了一行之外).这意味着'display'应该最初设置为'none'.这部分很容易.一些jQuery可以在ready()事件中的页面加载时更改此css:

$('.dragbox')
.each(function(){
  $(this).find('.dragbox-content').hide();
});
Run Code Online (Sandbox Code Playgroud)

还有一个名为"toggle"的jQuery命令,当你单击h2标签时,会自动在block&none之间交换这个css显示.所以我可以显示或隐藏每一行.

因此......如果在ready()事件中显示了一行(display:block),则可以将项目拖动到可排序列表中(即使您在显示和隐藏行之间切换).

但是......如果在ready()事件中隐藏了一行(display:none),则无法将项目拖动到可排序列表中.

有任何想法吗?真的卡在这一个......

css jquery draggable jquery-ui-sortable

2
推荐指数
1
解决办法
2241
查看次数

jQuery动态重新初始化/刷新draggable/sortable元素

我有一些函数,我在ready()事件中加载.这些基本上使列表可拖动,其他区域可放置/可排序.例如.您可以将克隆拖动到多个区域(div中的列表),并且在这些多个区域内,您可以对它们进行排序/重新排序(但仅限于每个区域内).这非常有效.

我有一个按钮,动态地为要放入的项目创建一个新区域,然后进行排序.它完美地创建了新区域,但是您不能将项目放入其中,或者甚至使它们可以排序.

我意识到这与我使用ready()事件在页面加载时使所有区域都可以删除/排序这一事实有关,并且实际上并没有动态地重新运行这些函数.

我尝试在按钮的单击功能中对这些元素使用'刷新'.例如.

$(".field > li").draggable('refresh');
$(".dragrow1, .dragrow2").droppable('refresh');
$(".dragrow1, .dragrow2").sortable('refresh');
Run Code Online (Sandbox Code Playgroud)

但这不起作用.如果我能提供帮助,我想避免以任何方式重复我的代码.有没有办法使这项工作?我认为,如果有类似'live()'函数的东西,你可以使用'ready()',那么这可能是一个解决方案,但不是......!

谢谢.

jquery refresh initialization dynamic jquery-ui-sortable

2
推荐指数
1
解决办法
9624
查看次数

根据连续顺序计算下一个变量名的最简洁方法?

希望我的标题解释好吧!这里有更多细节:

我正在创建一个存储键及其值的数组.例如.

test1 = hello
test2 = world
test3 = foo
Run Code Online (Sandbox Code Playgroud)

计算下一个键的最简洁方法是什么?假设我会知道第一部分是"测试",但我不知道最高值是多少.显然,在这种情况下,我希望它被称为'test4'.

在下面的示例中,我希望下一个键为'test46',因为它是下一个最高值:

test6 = blah
test45 = boo
test23 = far
Run Code Online (Sandbox Code Playgroud)

php variables key sequential

1
推荐指数
1
解决办法
165
查看次数